Android AlertDialog 获取PositiveButton的控制权

简介:

final AlertDialog.Builder alert = new AlertDialog.Builder(
                        CloudSyncActivity.this);
                alert.setIcon(getResources().getDrawable(R.drawable.about));
                alert.setTitle("标题");
                alert.setMessage("输入提示信息");
                alert.setPositiveButton("确认",
                        new DialogInterface.OnClickListener() {

                            @Override
                            public void onClick(DialogInterface dialog,
                                    int which) {

                               //控制点击按钮不消失问题
                                try
                                {
                                Field field = dialog.getClass()
                                .getSuperclass().getDeclaredField(
                                "mShowing" );
                                field.setAccessible( true );
                                // 将mShowing变量设为false,表示对话框已关闭
                                field.set(dialog, false );
                                dialog.dismiss();

                                }
                                catch (Exception e)
                                {

                                }
                            //获取按钮对象
                            Button PositiveButton=((AlertDialog)dialog).getButton(AlertDialog.BUTTON_POSITIVE);
                           //对按钮进行操作
                            PositiveButton.setVisibility(View.GONE);
                      
                            }
                        });
                alert.setNegativeButton("取消",
                        new DialogInterface.OnClickListener() {

                            @Override
                            public void onClick(DialogInterface dialog,
                                    int which) {
                                try
                                {
                                Field field = dialog.getClass()
                                .getSuperclass().getDeclaredField(
                                "mShowing" );
                                field.setAccessible( true );
                                // 将mShowing变量设为false,表示对话框已关闭
                                field.set(dialog, true );
                                dialog.dismiss();

                                }
                                catch (Exception e)
                                {

                                }
                            }
                        });
                alert.show();

相关文章
|
API Android开发
Android使用AlertDialog实现弹出菜单
本文分享了在Android开发中使用AlertDialog实现弹出菜单的方法,并通过代码示例和错误处理,展示了如何避免因资源ID找不到导致的crash问题。
183 1
|
Android开发 UED
|
API Android开发
32. 【Android教程】对话框:AlertDialog
32. 【Android教程】对话框:AlertDialog
317 2
|
API Android开发 UED
Android中使用AlertDialog创建对话框
Android中使用AlertDialog创建对话框
|
Android开发
[Android]AlertDialog对话框
[Android]AlertDialog对话框
150 0
|
Android开发
Android 中AlertDialog警告对话框的使用
Android 中AlertDialog警告对话框的使用
251 0
|
XML Java Android开发
Android 对话框组件 AlertDialog 四种常用方法
Android 对话框组件 AlertDialog 四种常用方法
344 0
|
XML 存储 前端开发
Android MVVM框架搭建(七)Permission、AlertDialog、拍照和相册选取
Android MVVM框架搭建(七)Permission、AlertDialog、拍照和相册选取
308 0
Android MVVM框架搭建(七)Permission、AlertDialog、拍照和相册选取
|
XML Android开发 数据格式
Android AlertDialog修改标题、内容、按钮的字体大小和字体颜色
Android AlertDialog修改标题、内容、按钮的字体大小和字体颜色
1195 0
Android AlertDialog修改标题、内容、按钮的字体大小和字体颜色
|
Android开发
Android弹窗二则: PopupWindow和AlertDialog
前言 弹窗是图形界面必备的一个模块, 回忆一下windows那些恶心爆了的错误弹窗吧, 把弹窗制作的更高效友好一点是非常必要的. 这里说两个常用的弹窗类, PopupWindow和AlertDialog.
1195 0

热门文章

最新文章