1

テキスト フィールドの入力をキーボードからスピナーに変更する方法が必要です。基本的にテキストフィールドは性別を入力するもので、ユーザーが男性または女性のいずれかを選択できるようにしたいだけです。

Google で検索しましたが、必要なものが見つかりませんでした。

誰にもアイデアはありますか?

4

3 に答える 3

2

テキストフィールドの代わりにスピナーを使用してみませんか? それは仕事をします。テキストフィールドをレイアウトのスピナーに置き換えて、アクティビティに次のようなものを配置するだけです:

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());
于 2016-07-29T07:47:01.833 に答える
0

textViewではなく、スピナーを使用するだけでよいと思います

http://developer.android.com/reference/android/widget/Spinner.html

于 2013-09-09T12:38:12.577 に答える
0

性別の選択には、ラジオグループとラジオボタンを使用するのが最善だと思います。ユーザーエクスペリエンスにも優れています。スピナーを使用して性別を選択し、スピナーを表示するテキスト フィールドを使用して性別を選択するには、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() に配置することもお勧めしますが、それはあなたに任せます。:)

于 2013-09-09T14:17:33.063 に答える