【Android笔记】点击EditText弹出单选框或多选框

这篇博客介绍了如何在Android中实现EditText点击后弹出单选和多选对话框的功能。通过设置OnClickListener,利用AlertDialog.Builder创建对话框,并分别展示了设置单选和多选列表的方法,以及如何处理用户选择后的结果,将选择内容更新到EditText上。
摘要由CSDN通过智能技术生成

【Android笔记——AlertDialog】点击EditText弹出单选框或多选框

怕以后自己忘了,只是记录一下,直接上代码吧

实现单选
// et_form_hint是EditText的id
et_form_hint.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
            	final String[] choiceItems = new String[]{"A", "B", "C", "D"};
                AlertDialog.Builder builder = new AlertDialog.Builder(activity);  // activity是当前所显示的activity
                builder.setItems(choiceItems, new DialogInterface.OnClickListener() {
                	@Override
                	public void onClick(DialogInterface dialog, int which) {
                		et_form_hint.setText(choiceItems[which]);
                	}
                });
                builder.show();
        });
实现多选
et_form_hint.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
               // 多选
                    final String[] choiceItems = new String[]{"A", "B", "C", "D", "E"}
                    final boolean[] selectedItems = new boolean[choiceItems.length];
                    Arrays.fill(selectedItems, false);

                    Dialog alertDialog = new AlertDialog.Builder(activity).setTitle("")
                            .setMultiChoiceItems(choiceItems, selectedItems, new
                                    DialogInterface.OnMultiChoiceClickListener() {
                                        @Override
                                        public void onClick(DialogInterface dialog, int which, boolean isChecked) {
                                            selectedItems[which] = isChecked;
                                        }
                                    }).setPositiveButton("确认", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                    StringBuilder stringBuilder = new StringBuilder();
                                    String choice[] = new String[choiceItems.length];
                                    int j = 0;
                                    for (int i = 0; i < selectedItems.length; i++) {
                                        if(selectedItems[i] == true) {
                                            choice[j++] = choiceItems[i];
                                        }
                                    }
                                    for(int i = 0; i < j; i++) {
                                        stringBuilder.append(choice[i]);
                                        if(j - 1 != i ) {
                                            stringBuilder.append(",");
                                        }
                                    }
                                    et_form_hint.setText(stringBuilder);
                                }
                            }).setNegativeButton("取消", new DialogInterface.OnClickListener() {
                                @Override
                                public void onClick(DialogInterface dialog, int which) {
                                }
                            }).create();
                    alertDialog.show();
        });

参考文章1——【Android新手笔记一】编辑框edittext实现单选或多选等对话框
参考文章2——EditText点击事件:弹出单选框

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值