对话框应用反射销毁

  /**
     * 设置对话框是否打开
     * @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();
        }
    }

  

时间: 2024-10-12 15:32:49

对话框应用反射销毁的相关文章

VC 模式对话框和非模式对话框的创建,销毁和区别

在WIN32中,模式对话框的创建一般是使用DialogBox来进行创建的.而非模式对话框则是利用CreateWindow来创建的.在MFC或是WTL中,模式对话框一般是使用DoModal,而非模式对话框的创建则是使用Create.模式对话框创建后,程序的其他窗口便不能进行操作,必须将该窗口关闭后,其他窗口才能进行操作.而非模式对话框则无需这样,它不强制要求用户立即反应,而是与其他窗口同时接受用户操作.Create的Dialog一般是modalless,如果你的程序本身就是只有一个Dialog,就

windows创建对话框的源代码

定义一个成员变量,当在调用DOMODAL()的时候,便把要加到COMBOBOX里面的数据给写进这个成员变量,然后在ONINITDIALOG里面对COMBOBOX进行初始化 void CMyView::OnShow() { // TODO: Add your command handler code here CDIALOG1 dlg; dlg.Create(IDD_DIALOG1) ; dlg.ShowWindow(SW_SHOW); } 作为非模态对话框,你定义的dlg是一个局部对象,那么执行

MFC中的模态对话框与非模态对话框

模态对话框创建: MyDialog mydlg; mydlg.DoModal() 当前只能运行此模态对话框,且停止主窗口的运行,直到模态对话框退出,才允许主窗口运行. 模态对话框的关闭顺序: OnClose:按关闭符号X后,响应WM_CLOSE消息 OnKillFocus:窗口即将失去输入焦点,响应WM_KILLFOCUS消息 OnDestroy:窗口即将被销毁时,响应WM_DESTROY消息 OnNcDestroy:窗口被销毁或,响应WM_NCDESTROY消息 PostNcDestroy:由

【转】MFC模态对话框和非模态对话框

MFC中对话框有两种形式,一个是模态对话框(model dialog box),一个是非模态对话框(modeless dialog box). 一.模态对话框(model dialog box) 在程序运行的过程中,若出现了模态对话框,那么主窗口将无法发送消息,直到模态对话框退出才可以发送. 点击模态对话框中的OK按钮,模态对话框会被销毁. 创建一个模态对话框的代码: 1 //创建一个模态对话框 2 CTestDialog td; 3 td.DoModal(); 其中CTestDialog为我自

发布一个文字界面库 解放文字显示 几分钟使你的对话框OR视图文字呈现多彩效果

解放文字显示 几分钟使你的对话框OR视图文字呈现多彩效果 解放文字显示处理 不要再将宝贵时间浪费在文字显示处理上,几分钟使您的文字显示呈现多彩效果 示例 :在对话框CStatic控件上,显示一段文字信息: 代码: shuhuaDLL使用说明: 对话框程序中添加VIEW视图: 对话框上放一个文本控件CStatic IDC_STATIC ,用此控件承载VIEW视图. 第一步:在对话框头文件中听见DLL头文件 #include "shuhuaDll\Factory.h" //添加视图头文件

怎样使用反射命令作轴对称图形

反射是指将选中的对象按标记的镜面(即对称轴,可以是直线.射线或线段)构造轴对称关系.以下教程以构造轴对称三角形为例讲解如何使用几何画板反射命令作轴对称图形. 注意:并不是所有的对象都可以反射,如构造出来的轨迹和函数图像都不能反射.反射命令不会弹出对话框,反射前必须标记镜面,否则系统会随机标记一个线段.射线或直线作为标记镜面. 举例:构造△ABC关于一条直线的轴对称图形 具体的操作步骤如下: 1.单击多边形工具,在画板的适当位置绘制一个△ABC. 2.单击直线工具,在画板的适当位置绘制一条直线DE

发布一个文字界面库 解放文字显示 几分钟使你的对话框OR视图文字呈现多彩效果

解放文字显示 几分钟使你的对话框OR视图文字呈现多彩效果 解放文字显示处理 不要再将宝贵时间浪费在文字显示处理上,几分钟使您的文字显示呈现多彩效果 示例 :在对话框CStatic控件上,显示一段文字信息: 代码: shuhuaDLL使用说明: 对话框程序中添加VIEW视图: 对话框上放一个文本控件CStatic IDC_STATIC ,用此控件承载VIEW视图. 第一步:在对话框头文件中听见DLL头文件 #include "shuhuaDll\Factory.h" //添加视图头文件

Android对话框之dismiss和cancel和hide区别

在我们看来两者效果都是一样的,其实看下源码就知道cancel肯定会去调dismiss的,如果调用的cancel的话就可以监听DialogInterface.OnCancelListener. /** * Cancel the dialog. This is essentially the same as calling {@link #dismiss()}, but it will * also call your {@link DialogInterface.OnCancelListener}

MFC 非模态对话框

MFC中对话框有两种形式,一个是模态对话框(model dialog box),一个是非模态对话框(modeless dialog box). 一.模态对话框(model dialog box) 在程序运行的过程中,若出现了模态对话框,那么主窗口将无法发送消息,直到模态对话框退出才可以发送. 点击模态对话框中的OK按钮,模态对话框会被销毁. 创建一个模态对话框的代码: [cpp] view plaincopy //创建一个模态对话框 CTestDialog td; td.DoModal(); 其