点击文本框时弹出单选(或复选)对话框,选择选项后在文本框中显示
2014-05-19 12:40
423 查看
例如我们首先创建了“性别”和“兴趣”的文本框
新建"\res\arrays.xml", 建立‘性别’与‘兴趣’的字符串列表
我们首先要做的是达到点击它们时弹出对话框这种效果:
单选对话框代码:
private int picwhich = 0; //保存单选按钮的选择
final TextView textView = (TextView)findViewById(R.id.Sex); //textView是一个局部变量,所以必须用final
textView.setInputType(InputType.TYPE_NULL); //设置点击时不弹出输入法
textView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
signProfile(R.array.pick_sex, R.string.inputSex,textView);
}});
private void signProfile(int array, int titleId, final TextView show) {
final String[] ssex = getResources().getStringArray(array);
AlertDialog.Builder builder = new Builder(MainActivity.this);
builder.setTitle(titleId); //设置标题
builder.setCancelable(false); //按返还键不能退出,必须要按设定的“确定”键和“取消”键才能退出默认为true
builder.setSingleChoiceItems(array,0, //setSingleChoiceItems:就是单选
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which){
picwhich = which;
}});
builder.setPositiveButton(R.string.confirm,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which){
show.setText("性别:"+ssex[picwhich]);
}});
builder.setNegativeButton(R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which){
show.setText(ssex[0]); //默认取第一项
}}); //或什么都不用做,onClick()为空时就是什么都不做
builder.create().show(); //create():创建它,show():显示它
}
复选对话框:
如果以上论述有错误或不足之处,欢迎大家指出,希望我的文章能帮助到大家。
新建"\res\arrays.xml", 建立‘性别’与‘兴趣’的字符串列表
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="pick_sex"> <item>男</item> <item>女</item> </string-array> <string-array name="pick_hobby"> <item>电影</item> <item>足球</item> <item>篮球</item> <item>羽毛球</item> <item>旅游</item> <item>跳舞</item> </string-array> </resources>
我们首先要做的是达到点击它们时弹出对话框这种效果:
单选对话框代码:
private int picwhich = 0; //保存单选按钮的选择
final TextView textView = (TextView)findViewById(R.id.Sex); //textView是一个局部变量,所以必须用final
textView.setInputType(InputType.TYPE_NULL); //设置点击时不弹出输入法
textView.setOnClickListener(new OnClickListener() {
public void onClick(View v) {
signProfile(R.array.pick_sex, R.string.inputSex,textView);
}});
private void signProfile(int array, int titleId, final TextView show) {
final String[] ssex = getResources().getStringArray(array);
AlertDialog.Builder builder = new Builder(MainActivity.this);
builder.setTitle(titleId); //设置标题
builder.setCancelable(false); //按返还键不能退出,必须要按设定的“确定”键和“取消”键才能退出默认为true
builder.setSingleChoiceItems(array,0, //setSingleChoiceItems:就是单选
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which){
picwhich = which;
}});
builder.setPositiveButton(R.string.confirm,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which){
show.setText("性别:"+ssex[picwhich]);
}});
builder.setNegativeButton(R.string.cancel,
new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialog,
int which){
show.setText(ssex[0]); //默认取第一项
}}); //或什么都不用做,onClick()为空时就是什么都不做
builder.create().show(); //create():创建它,show():显示它
}
复选对话框:
final TextView et = (TextView) findViewById(R.id.interest); et.setInputType(InputType.TYPE_NULL); et.setOnClickListener(new OnClickListener() { private boolean focus; @Override public void onClick(View v) { // TODO Auto-generated method stub ShowDlg(et); }}); boolean[] mulFlags = new boolean[] {true, false, false,false, false,false}; //true为默认选中的,false是没有选中的 private void ShowDlg(final TextView et) { final String[] items = getResources().getStringArray(R.array.pick_hobby); AlertDialog.Builder dlg = new AlertDialog.Builder(MainActivity.this); dlg.setCancelable(false); dlg.setIcon(android.R.drawable.btn_dialog); dlg.setTitle("复选按钮对话框"); dlg.setMultiChoiceItems(R.array.pick_hobby, mulFlags,//setMultiChoiceItems就是与单选setSingleChoiceItems的区别 new OnMultiChoiceClickListener() { public void onClick(DialogInterface dlg, int which, boolean checked) { } }); dlg.setPositiveButton("确认", new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which) { String result = "兴趣:"; for (int i = 0; i < mulFlags.length; i++) if (mulFlags[i]) result += items[i] + "、"; et.setText(result); } }); dlg.setNegativeButton(R.string.cancel, new DialogInterface.OnClickListener() { public void onClick(DialogInterface dialog, int which){ //默认取第一项 }}); //或什么都不用做 dlg.create().show(); }
如果以上论述有错误或不足之处,欢迎大家指出,希望我的文章能帮助到大家。
相关文章推荐
- 黑马程序员之WinForm编程基础学习笔记:用户在文本框1,2中输入两个数,点击按钮,在文本框3中显示从文本框1中的数字到文本框2中的数字之间的累加和。如果1或者2为错误的数据格式,则弹出对话框提示错
- 4. 用户在文本框1,2中输入两个数,点击按钮,在文本框3中显示从文本框1的数字到文本框2中的数字之间的累加和。如果1或则2为错误的数据格式,则弹出对话框提示错误。如果文本框1中的数字比文本框2中的数字大,则提示错误。
- 1. 简单的加法计算器,用户在文本框1,2中输入两个数,点击按钮,在文本框3中显示两个数的和。如果1或者2为错误的数据格式,则弹出对话框提示错误。
- js 点击文本框后弹出选择日期
- 近期.NET学习及项目开发整理-弹出对话框显示 是否 然后得到 选择的结果
- asp.net 点击一个按钮弹出对话框选择文件然后选择文件完成之后就自动上传文件 input(file)
- C#+Emgucv通过点击按钮弹出选择文件对话框
- 在文本框上按F7弹出供应商选择对话框,双击回填供应商名称
- 我自己重写 Ext.form.TwinTriggerField ,文本框点击后面按钮,弹出 Window 页面,选择值
- 自定义Eclipse中点击Propertyies弹出的首选项对话框
- C#+Emgucv通过点击按钮弹出选择文件对话框
- 点击文本框弹出日期选择输入日期代码
- 点击某处弹出一层显示你要选择的数据
- extjs4 点击按钮出现tree,选择一个节点,显示到文本框
- 在InstallShield中自定义复选对话框_2_用AskOption提供的功能来让用户选择复选项或单选项
- MDI程序,添加多文档模板,点击New菜单项的时候弹出New对话框要求让用户选择的问题
- 弹出页面显示TreeView,点击节点(NavigateUrl)把选择的值赋给父窗体
- 点击某处弹出一层显示你要选择的数据
- js 点击文本框后弹出选择日期