【问题标题】:android - show spinner rather than keyboard on text fieldandroid - 在文本字段上显示微调器而不是键盘
【发布时间】:2013-09-12 22:41:12
【问题描述】:

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

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

有人有什么想法吗?

【问题讨论】:

    标签: android input keyboard spinner


    【解决方案1】:

    为什么不直接使用微调器而不是文本字段?它会完成这项工作。只需在布局中将文本字段替换为微调器,然后在您的活动中添加类似内容:

    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());
    

    【讨论】:

      【解决方案2】:

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

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

      【讨论】:

        【解决方案3】:

        我认为最好使用单选组和单选按钮进行性别选择。对用户体验也有好处。使用微调器选择性别并使用显示微调器的文本字段选择性别需要单击两次。使用广播组只需单击一下。

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

        【讨论】:

          猜你喜欢
          • 2018-12-08
          • 2020-12-11
          • 1970-01-01
          • 2022-07-27
          • 1970-01-01
          • 2013-03-24
          • 1970-01-01
          • 1970-01-01
          • 2023-03-25
          相关资源
          最近更新 更多