加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 教程 > 正文

Android点击AlertDialog的button不退出对话框的技巧

发布时间:2021-12-15 10:56:12 所属栏目:教程 来源:互联网
导读:Android弹出对话框时,默认情况下无论点击哪个button,触发事件后对话框都会自动关闭。 可以利用反射机制,使触发按钮点击事件之后不退出对话框。 解决方法:在setButton的OnClickListener的OnClick里改变field,filed的改变对于该对象来说是全局的,所以想

Android弹出对话框时,默认情况下无论点击哪个button,触发事件后对话框都会自动关闭。
 
可以利用反射机制,使触发按钮点击事件之后不退出对话框。
 
解决方法:在setButton的OnClickListener的OnClick里改变field,filed的改变对于该对象来说是全局的,所以想要关闭时也要添加代码。
 
不退出对话框:
 
.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();  
           }  
       }  
  
   })  
点击退出对话框:
 
.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();  
        }  
  
    }  
})  

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读