テキスト フィールドの入力をキーボードからスピナーに変更する方法が必要です。基本的にテキストフィールドは性別を入力するもので、ユーザーが男性または女性のいずれかを選択できるようにしたいだけです。
Google で検索しましたが、必要なものが見つかりませんでした。
誰にもアイデアはありますか?
テキストフィールドの代わりにスピナーを使用してみませんか? それは仕事をします。テキストフィールドをレイアウトのスピナーに置き換えて、アクティビティに次のようなものを配置するだけです:
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());
textViewではなく、スピナーを使用するだけでよいと思います
http://developer.android.com/reference/android/widget/Spinner.html
性別の選択には、ラジオグループとラジオボタンを使用するのが最善だと思います。ユーザーエクスペリエンスにも優れています。スピナーを使用して性別を選択し、スピナーを表示するテキスト フィールドを使用して性別を選択するには、2 回のクリックが必要です。ラジオ グループを使用するには、ワンクリックで済みます。
ただし、何らかの理由 (たとえば、しつこいクライアント) で、スピナーを起動する編集テキストが本当に必要な場合は、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() に配置することもお勧めしますが、それはあなたに任せます。:)