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

点击文本框时弹出单选(或复选)对话框,选择选项后在文本框中显示

2014-05-19 12:40 423 查看
例如我们首先创建了“性别”和“兴趣”的文本框



新建"\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();
}




如果以上论述有错误或不足之处,欢迎大家指出,希望我的文章能帮助到大家。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  android textview
相关文章推荐