android - 在文本字段上显示微调器而不是键盘

时间:2013-09-09 12:31:11

标签: android input keyboard spinner

我需要一种方法来将文本字段的输入从键盘更改为微调器。基本上,文本字段是输入您的性别,我只希望用户能够选择男性或女性。

我在Google上搜索过但是我找不到我需要的东西。

有人有什么想法吗?

3 个答案:

答案 0 :(得分: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());

答案 1 :(得分:0)

我认为你只需要使用微调器而不是textView

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

答案 2 :(得分:0)

我认为最好使用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()上,但我会留给您。 :)