Android Material Textfield 如何设置仅允许输入数字
Material TextField 限制数字输入解决方案
TextInputEditText 本身继承自原生 EditText,你可以直接像使用原生EditText一样给它配置输入类型属性即可实现数字输入限制。
场景1:仅允许输入正整数
给你的 TextInputEditText 节点添加如下两个属性即可:
android:inputType="number":指定输入法弹出数字键盘android:digits="0123456789":额外限制仅能输入指定的数字字符,避免特殊符号输入
修改后的代码片段如下:
<com.google.android.material.textfield.TextInputEditText android:id="@+id/etTime" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="number" android:digits="0123456789" />
场景2:允许输入带小数点的数字
如果需要支持小数输入,修改属性为如下即可:
<com.google.android.material.textfield.TextInputEditText android:id="@+id/etTime" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="numberDecimal" android:digits="0123456789." />
如果需要支持负数输入,可以给inputType额外加上numberSigned属性,同时digits添加-字符即可。
动态代码设置(可选)
如果你需要在运行时动态修改输入类型,可以通过代码实现:
Kotlin 示例
// 仅允许整数 etTime.inputType = InputType.TYPE_CLASS_NUMBER // 允许小数 // etTime.inputType = InputType.TYPE_CLASS_NUMBER or InputType.TYPE_NUMBER_FLAG_DECIMAL
Java 示例
// 仅允许整数 etTime.setInputType(InputType.TYPE_CLASS_NUMBER); // 允许小数 // etTime.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL);
内容的提问来源于stack exchange,提问作者Eric Low
相关产品推荐
相关产品推荐

