您的位置:首页 > 移动开发 > Android开发

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();

}

}

})
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: