Android AlertDialog弹框

来源:互联网 发布:java 线程间传递数据 编辑:程序博客网 时间:2024/06/05 09:40
  • (第一种方法 : 系统提供方法 系统默认)

                      //创建 弹框               final AlertDialog.Builder ad = new AlertDialog.Builder(MainActivity.this);                //设置点击对话框(弹框)外部区域不关闭对话框(弹框)                ad.setCancelable(false);                //设置点击对话框外部区域,关闭对话框,默认         //      ad.setCancelable(true);                //设置 提示标题 图标                ad.setIcon(MainActivity.this.getResources().getDrawable(R.mipmap.tubiao));                //设置 提示标题的文本                ad.setTitle("提示 升级");                //设置 提示的消息                ad.setMessage("有新的版本了,您是否需要升级???");                //设置 用户 点击的按钮                ad.setPositiveButton("确定",new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        /**                         * 用户选择了确定   就去执行其他操作                         */                          ...                    }                });                ad.setNegativeButton("取消", new DialogInterface.OnClickListener() {                    @Override                    public void onClick(DialogInterface dialog, int which) {                        //点击 取消                        System.out.println("用户点击 了 取消");                    //弹框消失                   dialog.dismiss();                    }                });                /***                 *  Can't create handler inside thread that has not called Looper.prepare()                 *  不能在 子线程中创建 这个弹框提示                 */                /**                 * 从子线程中  转到主线程中                 */                MainActivity.this.runOnUiThread(new Runnable() {                    @Override                    public void run() {                        //显示 弹框                        ad.show();                    }                });

    `

    • ( 第二种方法 : 自己定义)

          // 创建弹出 弹框    AlertDialog.Builder alerDialog = new AlertDialog.Builder(ShowBlackListActivity.this);   //定义 弹框 的内容(写一个布局文件) item_dialog-xml

      inflate()的作用就是将一个用xml定义的布局文件查找出来,注意与findViewById()的区别,inflate是加载一个布局文件,而findViewById则是从布局文件中查找一个控件。

        //加载 布局 View itemView = View.inflate(ShowBlackListActivity.this, R.layout.item_dialog, null); //设置alerDialog.setView(itemView);    //显示 弹框        //方式一   alerDialog.show();    //方式二  进行显示    //  在 匿名 内部类 用 局部变量  要用final 来修饰 变量        final AlertDialog alertDialog1 = alerDialog.create();         alertDialog1.show(); //找到 控件 点击按钮  Button buttonShow = (Button)itemView.findViewById(R.id.bt_show_black);      //设置点击监听      buttonShow.setOnClickListener(new View.OnClickListener() {          @Override          public void onClick(View v) {              Log.d("Button", "用户点击了从黑名单移除");                     ...              //弹框消失             alertDialog1.dismiss();          }      });
原创粉丝点击