AlertDialog

常规选择弹出框

需要先声明一个AlertDialog.Builder
builder的 setTitle为设置弹出框标题, setMessage为设置弹出框主体信息, setIcon为设置图标
setPositiveButton 设置正向按钮(显示文字,点击事件)
setNeutralButton 设置中向按钮(显示文字,点击事件)
setNegativeButton 设置负向按钮(显示文字,点击事件)

   @Override
            public void onClick(View v) {
//                Toast.makeText(itemView.getContext(), "成功点击", Toast.LENGTH_SHORT).show();
                AlertDialog.Builder builder = new AlertDialog.Builder(itemView.getContext());
                builder.setTitle("快说好!!").setMessage("就问你觉得我写的这软件好不好使吧").setIcon(R.drawable.ic_head)
                        .setPositiveButton("太好使了", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                Toast.makeText(itemView.getContext(), "诚实的好孩子~", Toast.LENGTH_SHORT).show();
                            }
                        }).setNeutralButton("凑合吧", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(itemView.getContext(), "哼~我知道你有点小傲娇", Toast.LENGTH_SHORT).show();
                    }
                }).setNegativeButton("不好", new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(itemView.getContext(), "睁眼说瞎话", Toast.LENGTH_SHORT).show();
                    }
                }).show();
            }
        });

效果图
在这里插入图片描述

使用数组设置选择弹出框

参数which可看做数组下标
使用setItems(数组,点击事件);

 itemView.setOnLongClickListener(new View.OnLongClickListener() {
            @Override
            public boolean onLongClick(View v) {
//                Toast.makeText(itemView.getContext(), "成功长按", Toast.LENGTH_SHORT).show();
                String[] array = {"好!","太好了!!!"};
                AlertDialog.Builder builder1 = new AlertDialog.Builder(itemView.getContext());
                builder1.setTitle("快说好!!").setItems(array, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(itemView.getContext(), array[which], Toast.LENGTH_SHORT).show();

                    }
                }).show();
                return true;
            }
        });
        

效果图
在这里插入图片描述

弹出框设置单选效果

使用setSingleChoiceItems(数组,默认选择下标,点击事件)

    // 0 默认选中的数组下标
                builder1.setTitle("快说好!!").setSingleChoiceItems(array, 0, new DialogInterface.OnClickListener() {
                    @Override
                    public void onClick(DialogInterface dialog, int which) {
                        Toast.makeText(itemView.getContext(), array[which], Toast.LENGTH_SHORT).show();
                        dialog.dismiss(); // 选择后消失弹出框
                    }
                }).setCancelable(false).show(); // setCancelable设置不选择的时候点击旁边不消失弹出框

效果图
在这里插入图片描述

弹出框设置复选效果

使用setMultiChoiceItems(选项数组,是否选中数组,点击事件)
注意此处点击事件使用new DialogInterface.OnMultiChoiceClickListener()
boolean类型数组设置默认状态是否选中

  boolean[] boolean1 = {false,false,true};
  builder1.setTitle("快说好!!").setMultiChoiceItems(array, boolean1, new DialogInterface.OnMultiChoiceClickListener() {
  @Override
  public void onClick(DialogInterface dialog, int which,boolean boolean1) {
  Toast.makeText(itemView.getContext(), array[which]+":"+boolean1, Toast.LENGTH_SHORT).show();
                    }
 }).show();

在这里插入图片描述

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值