android 设置EditText只能输入数字

android:numeric="integer"    设置EditText只能输入数字

<EditText
        android:id="@+id/edit_text2"
        android:layout_width="106dp"
        android:layout_height="50dp"
        android:layout_above="@+id/edit_text1"
        android:layout_alignLeft="@+id/edit_text1"
        android:layout_alignParentRight="true"
        android:layout_weight="0.01"
        android:text="1" 
        android:numeric="integer"    
        />

Android中,如果你想设置EditText(即文本框)只允许用户输入数字,可以采用以下方法: 1. **设置输入类型**: 首先在XML布局文件中,给EditText设置`android:inputType="number"`属性,这会使键盘默认变为数字模式: ```xml <EditText android:id="@+id/numeric_input" android:layout_width="match_parent" android:layout_height="wrap_content" android:inputType="number" /> ``` 2. **利用Pattern和Matcher**(Java): 如果你想更精细地控制输入,可以在Activity或Fragment的`onTextChanged()`方法中使用正则表达式来过滤非数字字符: ```java editText.addTextChangedListener(new TextWatcher() { @Override public void beforeTextChanged(CharSequence s, int start, int count, int after) {} @Override public void onTextChanged(CharSequence s, int start, int before, int count) { Pattern pattern = Pattern.compile("\\d+"); Matcher matcher = pattern.matcher(s); if (!matcher.matches()) { editText.setText(matcher.replaceAll("")); } } @Override public void afterTextChanged(Editable s) {} }); ``` 3. **自定义验证适配器**(Kotlin): 使用`InputFilter`可以实现类似的功能。创建一个`RegexValidator`类,然后在XML布局里为EditText指定它: ```kotlin class RegexValidator : InputFilter { private val pattern = java.util.regex.Pattern.compile("\\d+") override fun filter(input: CharSequence?, start: Int, end: Int): CharSequence? { return pattern.matcher(input.toString()).replaceAll("") } } val filter = RegexValidator() editText.filters = arrayOf(filter) ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值