zoukankan      html  css  js  c++  java
  • 对话框应用反射销毁

      /**
         * 设置对话框是否打开
         * @param dialog 对话框
         * @param isOpened true:对话框开着,false:对话框关闭
         */
        private void dialogIsOpened(DialogInterface dialog, boolean isOpened) {
            Class clzDialog=dialog.getClass();
            //clzDialog=class android.app.AlertDialog
            System.out.println("clzDialog=" + clzDialog);
            Class clsSuperDialog=clzDialog.getSuperclass();
            System.out.println("clsSuperDialog="+clsSuperDialog);
    
            try {
                //得到Dialog类中的成员变量 private boolean mShowing = false;对应的Field类型的对象
                //如果mShowing=true则对话框可以关闭,false:表示对话框不可以关闭
                 Field field_mShowing=clsSuperDialog.getDeclaredField("mShowing");
                //是否取消java语法检查,true:是,false: 否
                field_mShowing.setAccessible(true);
                //给mShowing赋值
                field_mShowing.set(dialog,isOpened);
    
    
                //正常的赋值:dialog.mShowing=isOpened;
                //通过反射的赋值方式为:mShowing.set(dialog,isOpened);
    
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    

      

  • 相关阅读:
    第十三周
    意见评论
    第十二周
    冲刺10
    冲刺9
    冲刺8
    团队冲刺第二十二天-KeepRunningAPP
    找水王
    第十四周总结
    搜狗输入法评价
  • 原文地址:https://www.cnblogs.com/qcgAd/p/5083316.html
Copyright © 2011-2022 走看看