2012-12-25 117 views
0

我正在尝试获取用户在EditText中输入的整数值。解析Android中的整数值

EditText eTextValue=(EditText) findViewById(R.id.eId); 
String eTextString=eTextValue.getText().toString(); 
int eTextValue1=Integer.parseInt(eTextString); 

但偏偏我得到,

无法分析9827328为整数。

我试过使用Integer.valueOf而不是Integer.parseInt但我再次遇到同样的异常。

我甚至已经使用Long类型来存储值,而不是int类型的数据类型,但似乎没有要working.Any帮助在此将得到高度赞赏。 我已经通过所有这些链接unable to parse ' ' as integer in android,Parsing value from EditText ...但似乎没有任何工作,他们都在登陆我的例外。

+0

您可以发布您的异常堆栈跟踪? – Srinivas

+3

您输入的号码可能有前导空格和/或尾随空格。尝试使用'trim()'方法。 – Lion

+3

使用android:inputType =“number”在xml中试试。另请参阅.. http://stackoverflow.com/questions/4903515/how-do-i-return-an-int-from-edittext-android http://stackoverflow.com/questions/2709253/converting-a-string-to-an-integer-android – ridoy

回答

4

您正在使用eTextValue作为两个不同事物(int和EditText)的变量名称。你无法做到这一点,并期望它能正常工作。改变一个或另一个,它应该更好地工作。

0
int id; 
id=Integer.parseInt(ed.getText().toString()); 
+0

对此没有任何运气...已尝试 – John

+0

是否更改了edittext和int varible的变量名?它在我的地方工作 –

+0

是的,我尝试过,但唯一的解决方案在我的位置工程是http://stackoverflow.com/questions/2709253/converting-a-string-to-an-integer-android .. – John

0

尝试在相应的EditText元素下输入以下内容。

android:inputType =“number”

希望这应该让你通过例外。

0

您需要检查您正在解析的字符串是否是整数。试试这个代码:

if (IsInteger(eTextString) 
    int eTextValue1=Integer.parseInt(eTextString); 

并添加此功能:

public static boolean IsInteger(String s) 
{ 
    if (s == null || s.length() == 0) return false; 
    for(int i = 0; i < s.length(); i++) 
    { 
     if (Character.digit(s.charAt(i), 10) < 0) 
     return false; 
    } 
    return true; 
} 

我希望这有助于