Android AlertDialog弹框

本文介绍了两种在Android应用中实现弹框的方法。第一种利用系统提供的AlertDialog.Builder类创建并定制弹框;第二种通过自定义视图和AlertDialog.Builder结合的方式实现更灵活的弹框样式。这两种方法均可设置弹框的标题、消息内容及按钮,并处理用户交互。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  • (第一种方法 : 系统提供方法 系统默认)

                      //创建 弹框
                   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();
                }
            });
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值