我需要一种将文本字段的输入从键盘更改为微调器的方法。基本上文本字段是输入您的性别,我只希望用户能够选择男性或女性。
我在谷歌上搜索过,但是我找不到我需要的东西。
有人有想法么?
为什么不直接使用微调器而不是文本字段?它会完成这项工作。只需在布局中将文本字段替换为微调器,然后在您的活动中添加如下内容:
String[] spinnerGenderValue = {
getString(R.string.male),
getString(R.string.female),
getString(R.string.gender)
};
ArrayAdapter<String> adapter = new ArrayAdapter<String>(SignUpActivity.this, R.layout.spinner_item_dropdown, spinnerGenderValue){
@Override
public View getView(int position, View convertView, ViewGroup parent) {
View v = super.getView(position, convertView, parent);
if (position == getCount()) {
((TextView)v.findViewById(android.R.id.text1)).setText("");
((TextView)v.findViewById(android.R.id.text1)).setHint(getItem(getCount()));
}
return v;
}
@Override
public int getCount() {
return super.getCount()-1;
}
};
gender_spinner.setAdapter(adapter);
gender_spinner.setSelection(adapter.getCount());
我认为最好使用 Radio Group 和 Radio 按钮进行性别选择。对用户体验也有好处。使用微调器选择性别并使用显示微调器的文本字段选择性别需要单击两次。使用广播组只需单击一下。
但是,如果由于某种原因(例如,坚持不懈的客户),您确实需要一个可以调出微调器的编辑文本,您可以像这样设置 editText 的 onClickListener:
editText.setOnClickListener(new OnClickListener() {
@Override
public void onClick(View v) {
//show a spinner dialog here
showSpinnerDialog();
}
});
然后将微调器显示为弹出对话框。
public void showSpinnerDialog() {
AlertDialog.Builder builder = new AlertDialog.Builder(Activity.this);
String[] gender = {"Male", "Female"};
builder.setTitle("Choose a gender:");
builder.setItems(gender, new DialogInterface.OnClickListener() {
@Override
public void onClick(Dialog dialog, int pos) {
//save selected gender here
}
});
builder.setNegativeButton("Cancel", new OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
dialog.dismiss();
}
});
Dialog dialog = builder.create();
dialog.show();
}
请编辑以适合您的应用程序。我还建议将对话框创建放在您活动的 onCreateDialog() 上,但我将把它留给您。:)
我认为您只需要使用微调器而不是 textView
http://developer.android.com/reference/android/widget/Spinner.html