2013-05-14 111 views
0
public void onPass(View v) 
    { 

     String sn1=et1.getText().toString(); 
     String sn2=et2.getText().toString(); 

     int i1=Integer.parseInt(sn1); 
     int i2=Integer.parseInt(sn2); 
     Intent i=new Intent(this,Act2.class); 
     i.putExtra("k1",i1); 
     i.putExtra("k2", i2);  
     startActivity(i);  

    } 

logcat的錯誤:NumberFormatException的無法解析 '20'

E/AndroidRuntime(671): Caused by: java.lang.NumberFormatException: unable to parse '20 ' as integer 

回答

5

你必須在字符串的結尾空格。那就是問題所在。你需要修剪它。

+0

這樣做後,有一個新的錯誤,如logcat 05-14 14:51:34.018:E/AndroidRuntime(331):引起:android.content.res.Resources $ NotFoundException:字符串資源ID#0x4d2 – ceanan007 2013-05-14 09:26:33

4

在輸入結尾處有一個空白區域。嘗試:

String sn1=et1.getText().toString().trim(); 
String sn2=et2.getText().toString().trim(); 
+0

之後,一個新的錯誤,如logcat 05-14 14:51:34.018:E/AndroidRuntime(331):引起:android.content.res.Resources $ NotFoundException:字符串資源ID#0x4d2 – ceanan007 2013-05-14 09:39:48

+0

發佈一個新的問題與新的代碼請致電 – 2013-05-14 09:41:44

1
'20 ' // <<---- you have a whitespace at the end 

您需要解析之前trim它。

0

你一定是因爲你在最後一個空白,你可以做到這一點修剪字符串:

int i1=Integer.parseInt(sn1.trim()); 
int i2=Integer.parseInt(sn2.trim()); 

或:

你可以像zouzou改變說:

String sn1=et1.getText().toString().trim(); 
String sn2=et2.getText().toString().trim(); 
+0

這樣做後,有一個新的錯誤,如logcat 05-14 14:51:34.018:E/AndroidRuntime(331):引起:android.content.res.Resources $ NotFoundException:字符串資源ID#0x4d2 – ceanan007 2013-05-14 09:39:00

+0

所以也許「sn1」或「sn2」ar已經是整數或不是字符串 試試這個: int i1 = Integer.parseInt(sn1.toString()。trim()); int i2 = Integer.parseInt(sn2.toString()。trim()); 希望它能工作:) (或int i1 = Integer.parseInt((sn1 +「」)。trim()); ...) – 2013-05-23 07:35:28