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

android-在文本字段上显示微调器而不是键盘,android,input,keyboard,spinner,Android,Input,Keyboard,Spinner,我需要一种将文本字段的输入从键盘更改为微调器的方法。基本上,文本字段是输入您的性别,我只希望用户能够选择男性或女性 我在谷歌上搜索过,但是我没有找到我需要的东西 有人有什么想法吗?我想你只需要使用微调器,而不是文本视图 我认为最好使用单选组和单选按钮进行性别选择。它也有利于用户体验。使用微调器选择性别和使用显示微调器的文本字段选择性别需要单击两次。使用无线组只需单击一次 但是,如果出于某种原因(例如坚持客户端),您确实需要一个显示微调器的编辑文本,您可以如下设置editText的onClickL

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

我在谷歌上搜索过,但是我没有找到我需要的东西


有人有什么想法吗?

我想你只需要使用微调器,而不是文本视图


我认为最好使用单选组和单选按钮进行性别选择。它也有利于用户体验。使用微调器选择性别和使用显示微调器的文本字段选择性别需要单击两次。使用无线组只需单击一次

但是,如果出于某种原因(例如坚持客户端),您确实需要一个显示微调器的编辑文本,您可以如下设置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()上,但我将把它留给您。:)

为什么不使用微调器而不是文本字段?它将完成这项工作。只需在布局中用微调器替换文本字段,并在活动中放置类似的内容:

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());
String[]spinnerGenderValue={
getString(R.string.male),
getString(R.string.female),
getString(R.string.gender)
};
ArrayAdapter=新的ArrayAdapter(SignUpActivity.this,R.layout.spinner\u item\u下拉列表,spinnerGenderValue){
@凌驾
公共视图getView(int位置、视图转换视图、视图组父视图){
视图v=super.getView(位置、转换视图、父级);
if(position==getCount()){
((TextView)v.findViewById(android.R.id.text1)).setText(“”);
((TextView)v.findViewById(android.R.id.text1)).setHint(getItem(getCount());
}
返回v;
}
@凌驾
public int getCount(){
返回super.getCount()-1;
}
};
性别\旋转器。设置适配器(适配器);
gender_spinner.setSelection(adapter.getCount());