/**
*让当前对话框关闭
*/
private void closeDialog(DialogInterface dialig){
//通过反射机制得到当前AlertDialog的类模板对象
Class clz_alertDialog=dialog.getClass();
//再次通过反射机制得到当前对象的父类模板对象
Class clz_dialog=clz_alertDialog.getSuperclass();
try{
//得到父类的mShowing的字段对象
Field=field=clz_dialog.getDeclaredField("mShowing");
//将private的访问权限放开
field.setAccessible(true);
field.setBoolean(dialog,true);
}catch(Exception e){
e.printStackTrace();
}
}
/**
*让当前对话框不关闭
*/
private void closeDialog(DialogInterface dialig){
//通过反射机制得到当前AlertDialog的类模板对象
Class clz_alertDialog=dialog.getClass();
//再次通过反射机制得到当前对象的父类模板对象
Class clz_dialog=clz_alertDialog.getSuperclass();
try{
//得到父类的mShowing的字段对象
Field=field=clz_dialog.getDeclaredField("mShowing");
//将private的访问权限放开
field.setAccessible(true);
field.setBoolean(dialog,false);
}catch(Exception e){
e.printStackTrace();
}
}
本文介绍如何通过反射机制来控制Android的AlertDialog关闭或不关闭。提供了两个方法,一个是`closeDialog`用于关闭对话框,另一个是`openDialog`用于阻止对话框关闭。这两个方法都是通过对AlertDialog的mShowing字段进行操作实现的。
4658

被折叠的 条评论
为什么被折叠?



