3

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

谢谢蒂鲁

4

6 回答 6

9

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

在您的布局 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;
            }

        }
    });

}
于 2013-04-30T09:04:30.117 回答
0
   <EditText
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
    android:inputType="number|text"

         />
于 2013-04-30T07:36:21.157 回答
0

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

于 2013-04-30T07:38:37.943 回答
0

首先放入 xml :

android:inputType="number"

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

edittext.setInputType(InputType.TYPE_CLASS_TEXT);
于 2013-04-30T07:39:26.317 回答
0

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

于 2017-03-08T08:59:41.837 回答
0

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

也使用 android:numeric。

于 2015-12-09T15:15:20.930 回答