通常,从EditText中获取字符串很简单:
EditText text = findViewById(R.id.textName);
String name = text.getText().toString();
现在要从其中获得数字,就要做以下处理。
xml中加入输入类型android:inputType="number",这样使得弹出的输入键盘为数字键盘。之前的android:numeric="integer"已经过时。
<EditText
android:id="@+id/editText_age"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:hint="input age"
android:inputType="number" />
Java文件中:
EditText et_age = findViewById(R.id.editText_age);
int age = Integer.parseInt(et_age.getText().toString());
有网友说直接使用getText()会报错,要使用getEditableText()。另外,trim()可以去掉字符串两端的的空格。
扩展
既然用到了android:inputType属性,就介绍一下常见的类型。
android:inputType="none" //输入普通字符
android:inputType="text" //输入普通字符
android:inputType="textCapCharacters" //所有字母大写
android:inputType="textCapWords" //单词首字母大写
android:inputType="textCapSentences" //仅第一个字母大写
android:inputType="textAutoCorrect" //自动完成
android:inputType="textAutoComplete" //自动完成
android:inputType="textMultiLine" //多行输入
android:inputType="textImeMultiLine" //输入法多行(不一定支持)
android:inputType="textNoSuggestions" //不提示
android:inputType="textUri" //URI格式
android:inputType="textEmailAddress" //电子邮件地址格式
android:inputType="textEmailSubject" //邮件主题格式
android:inputType="textShortMessage" //短消息格式
android:inputType="textLongMessage" //长消息格式
android:inputType="textPersonName" //人名格式
android:inputType="textPostalAddress" //邮政格式
android:inputType="textPassword" //密码格式
android:inputType="textVisiblePassword" //密码可见格式
android:inputType="textWebEditText" //作为网页表单的文本格式
android:inputType="textFilter" //文本筛选格式
android:inputType="textPhonetic" //拼音输入格式
//数值类型
android:inputType="number" //数字格式
android:inputType="numberSigned" //有符号数字格式
android:inputType="numberDecimal" //可以带小数点的浮点格式
android:inputType="phone" //拨号键盘
android:inputType="datetime" //日期+时间格式
android:inputType="date" //日期键盘
android:inputType="time" //时间键盘
原文链接:https://blog.csdn.net/qq_35413770/article/details/104781833