2013-05-14 76 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