【Android】设置让输入框只能输入数字

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

相关推荐
CV资深专家3 小时前
Android 编译系统lunch配置总结
android
撩得Android一次心动3 小时前
Android 项目:画图白板APP开发(五)——橡皮擦(全面)
android·绘图·自定义视图
2501_915106323 小时前
App Store 软件上架全流程详解,iOS 应用发布步骤、uni-app 打包上传与审核要点完整指南
android·ios·小程序·https·uni-app·iphone·webview
大菠萝爱上小西瓜4 小时前
分享一篇关于雷电模拟器基于安卓9的安装环境及抓包的详细教程
android
用户2018792831675 小时前
浅析:Synchronized的锁升级机制
android
用户2018792831675 小时前
SystemClock.elapsedRealtime() 和 System.currentTimeMillis()
android
低调小一5 小时前
深入理解 Android targetSdkVersion:从 Google Play 政策到依赖冲突
android
皆过客,揽星河5 小时前
Linux上安装MySQL8详细教程
android·linux·hadoop·mysql·linux安装mysql·数据库安装·详细教程
catchadmin6 小时前
开发 PHP 扩展新途径 通过 FrankenPHP 用 Go 语言编写 PHP 扩展
android·golang·php