您的位置:首页 > 移动开发 > Android开发

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

2016-06-02 12:33 561 查看
<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();
}
});



                                            
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: