2014-02-15 56 views
0

時,我正在寫一個應用程序,接受來自AddBook類的輸入的Android NumberFormatException的,允許其在List顯示出來,然後允許用戶搜索他們的書。爲此,我創建一個臨時EditText,它綁定到用戶實際進入他們的搜索值,然後(確保它不爲空後)箱我比較他們已經進入什麼與國際標準書號ISBN號在<Book>arrayList自定義對象的每個條目的數量,名單被命名的書籍。解析的EditText

問題是,當我試圖將EditText解析爲Int時,它似乎不起作用。我先上EditText使用toString(),然後在該方法的結果使用Integer.parseInt()嘗試,但還沒有制定出來,作爲轉換似乎是不成功的;

所有資源的到位和代碼編譯正確,所以這些都不是問題在這裏。

EditText myEdTx = (EditText) findViewById(R.id.bookName); 

    if(myEdTx.getText().equals("")){Toast toast = Toast.makeText(this, "Please enter something for us to work with!", Toast.LENGTH_SHORT); 
    toast.show();} 
    else{ 
    //resume here 
    for(int i=0; i<books.size(); i++) 
    { 
    Book tBook = new Book(i, null, null); tBook = books.get(i); String s=myEdTx.toString(); 
    int tInt = Integer.parseInt(s);` 
+0

你,當你試圖解析字符串NumberFormatException的那不是一個數量 – Peshal

回答

2

爲了得到一個EditText的內容的字符串表示,使用方法:

String s = myEdTx.getText().toString(); 

使用的toString()直接在EditText上給你的東西,如:

android.widget.EditText{40d31450 VFED..CL ......I. 0,0-0,0} 

...這顯然不是你想在這裏。

0

您認爲用戶輸入一個數字文本字段,但是這是不安全的,因爲你只能得到一個字符串文本(這在理論上可以包含非數字以及)。當我沒有記錯的時候,你可以在android中調整一個用戶只能輸入數字的文本字段,這應該更適合你。

0

NumberFormatException發生在Integer.parse()無法將字符串解析爲整數時,所以最好處理此異常。

String s = myEdTx.getText().toString(); 
    try { 
     int tInt = Integer.parseInt(s); 
    } catch(NumberFormatException ex) { 
     //do something if s is not a number, maybe defining a default value. 
     int tInt = 0; 
    } 
0

所以這裏的當前String您要分析是在該行 和整數類無法解析空白空白。所以使用下面的代碼。

String s=myEdTx.getText().toString();  
int tInt = Integer.parseInt(s.trim()); 
0
String s = myEdtx.getText().toString().trim(); 

int iInt = Integer.parseInt(s);