Android点击AlertDialog的button不退出对话框的方法
2014-07-16 14:28
891 查看
Android弹出对话框时,默认情况下无论点击哪个button,触发事件后对话框都会自动关闭。
可以利用反射机制,使触发按钮点击事件之后不退出对话框。
解决方法:在setButton的OnClickListener的OnClick里改变field,filed的改变对于该对象来说是全局的,所以想要关闭时也要添加代码。
不退出对话框:
[java] view
plaincopy
.setPositiveButton("开始测试", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
; try
{
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
//设置mShowing值,欺骗android系统
field.set(dialog, false);
}catch(Exception e) {
e.printStackTrace();
}
}
})
点击退出对话框:
[java] view
plaincopy
.setNegativeButton("退出测试", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
try
{
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
//设置mShowing值,欺骗android系统
field.set(dialog, true);
} catch(Exception e) {
e.printStackTrace();
}
}
})
可以利用反射机制,使触发按钮点击事件之后不退出对话框。
解决方法:在setButton的OnClickListener的OnClick里改变field,filed的改变对于该对象来说是全局的,所以想要关闭时也要添加代码。
不退出对话框:
[java] view
plaincopy
.setPositiveButton("开始测试", new DialogInterface.OnClickListener(){
@Override
public void onClick(DialogInterface dialog, int which) {
; try
{
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
//设置mShowing值,欺骗android系统
field.set(dialog, false);
}catch(Exception e) {
e.printStackTrace();
}
}
})
点击退出对话框:
[java] view
plaincopy
.setNegativeButton("退出测试", new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
// TODO Auto-generated method stub
try
{
Field field = dialog.getClass().getSuperclass().getDeclaredField("mShowing");
field.setAccessible(true);
//设置mShowing值,欺骗android系统
field.set(dialog, true);
} catch(Exception e) {
e.printStackTrace();
}
}
})
相关文章推荐
- android点击AlertDialog的button不退出对话框的方法
- Android 连续点击back button退出当前Activity的两种实现方法
- Android下关于AlertDialog点击 确定或者取消按钮 对话框自动消失的 解决办法
- android ListView的OnItemClickListener事件被其内部Button点击事件屏蔽的解决方法
- Android中让AlertDialog点击了按钮后对话框不消失
- Android设置AlertDialog点击按钮对话框不关闭(转)
- android AlertDialog设置点击button不退出(转)
- android AlertDialog设置点击button不退出
- Android Alertdialog对话框点击消失?
- android 防止按钮连续点击的方法(Button,ImageButton等)
- android 语言国际化 + 点击按钮出现menu + 点击menu出现dialog对话框 + radiobutton 点击事件
- android中postDelayed方法的讲解(连续两次点击退出)
- Android中Alertdialog对话框点击消失?
- Android中Alertdialog对话框点击消失?
- Android中 Alertdialog对话框点击消失?
- android 防止按钮连续点击的方法(Button,ImageButton等)
- Android点击MENU弹出的退出按钮退出系统方法及拦截MENU弹出菜单方法
- Android点击Button实现功能的几种方法
- Android监听Button等控件的点击事件的三种方法
- android 点击返回键退出程序的方法