【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();
}
});
相关文章推荐
- Android中<meta-data>的使用
- 虚线分割线
- Android开发的16条小经验总结
- Android中的so注入(inject)和挂钩(hook) - For both x86 and arm
- AndroidStudio 安装Material design icon插件
- android studio信鸽推送10004错误
- Android EventBus框架(一)之使用详细介绍
- apk信息查询
- android studio使用gsonformat直接生成类
- android values 适配
- Android Studio 自带的侧滑布局设置
- Android开发新工具Android Studio相关知识
- 【Android】技术调研:用代码模拟屏幕点击、触摸事件
- 【Android】Suggestion: use tools:overrideLibrary="" to force usage
- 文章标题
- Android 百度地图开发(一)--- 申请API Key和在项目中显示百度地图
- Android NDK开发 实际应用--数据加密
- Facebook Open Source项目介绍(Android篇)
- androidstudio中生成百度地图两种AK的方式(debug版和正式版)
- HAL开发全流程(一)