【问题标题】:How to change input type Number to Text of EditText in android如何在android中将输入类型数字更改为EditText的文本
【发布时间】:2013-04-24 01:26:31
【问题描述】:

我的项目中有一个要求,默认情况下 Edittext 的输入类型是数字。我们如何为用户提供一个选项以将输入类型数字更改为文本/字母。

谢谢 蒂鲁

【问题讨论】:

    标签: android android-layout android-intent android-emulator


    【解决方案1】:

    您可以使用 android:inputType=text 并编写自己的验证代码来接受数字等后的数字/单个小数。

    【讨论】:

      【解决方案2】:

      如果你只想要 EditText 中的数字 你可以使用 - android:inputType="number" android:digits="0,1,2,3,4,5,6,7,8,9"

      也使用 android:numeric。

      【讨论】:

        【解决方案3】:

        您可以使用切换按钮在数字和文本之间切换,反之亦然。

        在您的布局 xml 中:

        <EditText
            android:id="@+id/editText1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:ems="10"
            android:inputType="number" >
        
            <requestFocus />
        </EditText>
        
        <ToggleButton
            android:id="@+id/toggleButton1"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:text="InputType"
            android:textOff="Text"
            android:textOn="Number" />
        

        活动类:

        EditText ed;
        ToggleButton edtb;
        
        //flag : used in the added code
        
        static boolean flag = false;
        
        @Override
        protected void onCreate(Bundle savedInstanceState) {
            super.onCreate(savedInstanceState);
            setContentView(R.layout.activity_main);
        
            ed = (EditText) findViewById(R.id.editText1);
            edtb = (ToggleButton) findViewById(R.id.toggleButton1);
        
            edtb.setOnCheckedChangeListener(new OnCheckedChangeListener() {
        
                @Override
                public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
        
                    if(isChecked)
                    {
                        ed.setInputType(InputType.TYPE_CLASS_TEXT);
                    }
                    else
                    {
                        ed.setInputType(InputType.TYPE_CLASS_NUMBER);
                    }
        
                }
            });
        
          /* **Edited** Adding a way to achieve the same using EditText only. */
        
          ed.setOnClickListener(new OnClickListener() {
        
                @Override
                public void onClick(View v) {
        
                    if(flag)
                    {
                        ed.setInputType(InputType.TYPE_CLASS_TEXT);
                        flag=false;
                    }
                    else
                    {
                        ed.setInputType(InputType.TYPE_CLASS_NUMBER);
                        flag=true;
                    }
        
                }
            });
        
        }
        

        【讨论】:

        • 我想通过只使用Editext控件,我们如何将软键盘输入类型数字更改为字母
        • 请注意:我觉得使用切换按钮会增加用户体验,因为用户会有一些视觉告诉他他可以更改设置。编码愉快。
        【解决方案4】:

        先放入xml:

        android:inputType="number"

        动态地将输入类型数字更改为文本/字母。

        edittext.setInputType(InputType.TYPE_CLASS_TEXT);
        

        【讨论】:

        • 我试过这种方式,但是默认显示的是文字,我需要默认显示数字。用户可以将其更改为文本类型
        • 你把 android:inputType="number" 放到 xml 里了吗?
        • 如果您在 xml 中提供 android:inputType="number" 那么默认情况下它只接受数字而不是全部。
        • 有没有其他方法可以达到我的要求
        • 你可以使用 android:inputType="number" android:digits="0,1,2,3,4,5,6,7,8,9"
        【解决方案5】:

        ToggleButton 可以帮助您。创建监听器并将数字类型与一种状态关联,将文本与另一种状态关联,当用户单击按钮时,输入文本会发生变化。

        【讨论】:

        • 我只想要只使用Editext,我们如何将软键盘输入类型数字更改为字母
        【解决方案6】:
           <EditText
                android:layout_width="match_parent"
                android:layout_height="wrap_content"
            android:inputType="number|text"
        
                 />
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2016-05-24
          • 2014-02-13
          • 1970-01-01
          • 2017-02-13
          • 1970-01-01
          • 2023-03-19
          • 1970-01-01
          • 1970-01-01
          相关资源
          最近更新 更多