2012-12-25 112 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; 
} 

我希望這有助於