在 Android 里想让输入框只能输入数字,一般用 EditText 并设置 android:inputType
或者 digits
属性。几种方式如下:
方式一:XML中设置 inputType
xml
<EditText
android:id="@+id/et_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:inputType="number"
android:hint="请输入数字" />
这样就会弹出数字键盘,并且只能输入数字。
方式二:XML中设置 digits
如果只想限制特定字符(比如只允许 0-9
),可以用 digits
:
xml
<EditText
android:id="@+id/et_number"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:digits="0123456789"
android:hint="只能输入0-9的数字" />
方式三:代码里动态设置
java
EditText etNumber = findViewById(R.id.et_number);
etNumber.setInputType(InputType.TYPE_CLASS_NUMBER);
或者指定 digits:
java
etNumber.setKeyListener(DigitsKeyListener.getInstance("0123456789"));
补充说明
android:inputType="numberDecimal"
→ 可以输入小数。android:inputType="numberSigned"
→ 可以输入正负号。- 如果既要数字又要小数,可以用
numberDecimal|numberSigned
。