如何从EditText返回int?(Android)


Answers:


147

现在,使用EditText。使用android:inputType="number"强制它是数字。将结果字符串转换为整数(例如Integer.parseInt(myEditText.getText().toString()))。

将来,您可能会考虑使用NumberPicker可用的小部件(计划在Honeycomb中使用)。


另外,在Java中,您知道“ number” inputType android属性的整数等效项是什么吗?(即:EditText.setInputType(integer))。谢谢。
Rob S.

@Rob S .: InputType.TYPE_CLASS_NUMBER,如文档中所示。
CommonsWare,

7
我认为应该将其扩展为考虑editText没有值的情况(即editText.getText()==“”)。
user1923613

4
当edittext为null时会引发异常。当给出类似Integer.parseInt(myEditText.getText()。toString())的消息时
Sharath

10

digits属性设置为true,这将导致它仅允许输入数字。

然后做得到Integer.valueOf(editText.getText())一个整数值。


5
这不会导致The method valueOf(String) in the type Integer is not applicable for the arguments (Editable)错误吗?
zhangxaochen

2
@zhangxaochen-getText()不是字符串。需要致电getText().toString()
Janusz Hain

9

首先从EDITTEXT获取一个字符串,然后将该字符串转换为整数,例如

      String no=myTxt.getText().toString();       //this will get a string                               
      int no2=Integer.parseInt(no);              //this will get a no from the string

0

您可以通过2个步骤进行操作:

1:EditText将布局文件中的输入类型(在您的字段中)更改为android:inputType="number"

2:使用 int a = Integer.parseInt(yourEditTextObject.getText().toString());


但是,正如其他答案所指出的,它实际上更多的是“与”而不是“或”,对吗?如果执行1,则仍然需要执行2,XML不能更改Java中作为返回类型所获得的内容,如果执行2,则需要执行1以确保安全输入。您将始终需要做2个,最好两个都做。
Tim M.

谢谢蒂姆,这是一个错字!
Girish BR

(将这些评论放在上下文中,此问题已通过编辑得到解决)
Tim M.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.