关闭

【Android新手笔记一】编辑框edittext实现单选或多选等对话框

标签: androidedittext对话框dialog
472人阅读 评论(0) 收藏 举报
分类:
<pre name="code" class="plain">


单选:dialog方式

edt_bloodtype.setOnClickListener(new View.OnClickListener() {              //edittext的点击事件
            @Override
            public void onClick(View v) {
                final String[] arr0 = new String[]{"A型", "B型", "AB型",            //要选择的选项列表
                        "O型", "不详"};
                Dialog alertdialog_blood = new AlertDialog.Builder(personalInfoActivity.this)  //personalInfoActivity为当前activity
                        .setTitle("血型").setSingleChoiceItems(arr0, selectedIndex, new       //单选。selectedIndex之前定义过,为点开时选中的那一项
                                DialogInterface.OnClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which) {
                                        selectedIndex = which;                               //which为选中的选项,若是第一个,which=0
                                    }
                                }).setPositiveButton("确认", new DialogInterface.OnClickListener() { //点击确认
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                edt_bloodtype.setText(arr0[selectedIndex]);         //将数组中的对应项填入edittext中
                            }
                        }).setNegativeButton("取消", new DialogInterface.OnClickListener() {  //取消按钮
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                            }
                        }).create();
                alertdialog_blood.show();    
            }
        });

存在第一次点击edittext不弹出对话框,而进入编辑的问题。不知道怎么解决,直接在布局文件的edittext中加一行

<pre name="code" class="html">android:focusableInTouchMode="false"



多选:

edt_symp.setOnClickListener(new View.OnClickListener() {              //点击事件
            @Override
            public void onClick(View v) {
                final String[] arr1 = new String[]{"无症状", "多饮", "多食", "多尿", "视力模糊",
                        "感染", "手脚麻木", "下肢浮肿", "体重明显下降"};                              //对话框中各选项
                final boolean[] arrSelected1 = new boolean[]{false, false, false, false, false,
                        false, false, false, false};                                              //点开对话框时各选项是否被选中
                Dialog alertdialog_symp = new AlertDialog.Builder(diabetes.this)
                        .setTitle("症状").setMultiChoiceItems(arr1, arrSelected1, new
                                DialogInterface.OnMultiChoiceClickListener() {
                                    @Override
                                    public void onClick(DialogInterface dialog, int which,
                                                        boolean isChecked) {
                                        arrSelected1[which] = isChecked;                   //每个选项是否被选中的结果
                                    }
                                }).setPositiveButton("确认", new DialogInterface.OnClickListener() {   //确认按钮
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                                StringBuilder stringBuilder = new StringBuilder();
                                for (int i = 0; i < arrSelected1.length; i++) {
                                    if (arrSelected1[i] == true) {
                                        stringBuilder.append(arr1[i] + ",");           //选中的各选项用“,”相连
                                    }
                                }
                                edt_symp.setText(stringBuilder);                      //填入edittext中
                            }
                        }).setNegativeButton("取消", new DialogInterface.OnClickListener() {
                            @Override
                            public void onClick(DialogInterface dialog, int which) {
                            }
                        }).create();
                alertdialog_symp.show();
            }
        });



   
0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:2797次
    • 积分:167
    • 等级:
    • 排名:千里之外
    • 原创:14篇
    • 转载:1篇
    • 译文:0篇
    • 评论:5条
    最新评论