当前位置:编程学习 > wap >>

android中调用Integer.parseInt方法报错

为什么我获取intent传递的字符串后 通过Integer.parseInt转换会报错啊?
public class Skip extends Activity{
private TextView skipText;
@Override
protected void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
this.setContentView(R.layout.skip);
skipText=(TextView) findViewById(R.id.skipTest);
Intent intent=getIntent();
String oneStr=intent.getStringExtra("oneStr");
String twoStr=intent.getStringExtra("twoStr");
int oneq=Integer.parseInt(oneStr);
int twoq=Integer.parseInt(twoStr);
int sumq=oneq+twoq;
skipText.setText(""+sumq);
}

}

已经检查过了  两个String中都有值  我只要屏蔽掉Integer.parseInt方法 程序就可以运行 andrroid --------------------编程问答-------------------- 这部分代码没问题,主要看上一个activity给intent的值是什么。如果是字符串的话,就报错了。错误信息什么 --------------------编程问答-------------------- oneStr,twoStr为空或不是数字。 --------------------编程问答-------------------- 楼主肯定定报的这个错:NumberFormatException
你的oneStr或者twoStr不能转换成整数。举个例子,oneStr或者twoStr的值为“你好,楼主”等等这样的字符串就会报错的,如果是“123”等这样的数字字符串就不会报这个错了,试试! --------------------编程问答-------------------- 如果你的字符串是“一百万”这种含有汉字的就会报错 --------------------编程问答-------------------- 非数字的字符都会报错 --------------------编程问答-------------------- oneStr,twoStr不是数字 --------------------编程问答--------------------
引用 2 楼 zanfeng 的回复:
oneStr,twoStr为空或不是数字。

好歹我也是干 java web的 这点我还是知道的  已经如果我不进行转换 直接以这种形式输出skipText.setText(oneStr+twoStr);
是可以执行的 比如我传递的 2和3 activity中也能看到 但是一旦通过Integer.parseInt转换就会出错 --------------------编程问答--------------------
引用 6 楼 a394268045 的回复:
oneStr,twoStr不是数字


要是这种错误的话 我就不用来发帖了 --------------------编程问答--------------------
引用 6 楼 a394268045 的回复:
oneStr,twoStr不是数字

好歹我也是干 java web的 这点我还是知道的  已经如果我不进行转换 直接以这种形式输出skipText.setText(oneStr+twoStr);
是可以执行的 比如我传递的 2和3 activity中也能看到 但是一旦通过Integer.parseInt转换就会出错  --------------------编程问答--------------------
引用 9 楼 xl619569096 的回复:
Quote: 引用 6 楼 a394268045 的回复:

oneStr,twoStr不是数字

好歹我也是干 java web的 这点我还是知道的  已经如果我不进行转换 直接以这种形式输出skipText.setText(oneStr+twoStr);
是可以执行的 比如我传递的 2和3 activity中也能看到 但是一旦通过Integer.parseInt转换就会出错 
--------------------编程问答--------------------
引用 8 楼 xl619569096 的回复:
Quote: 引用 6 楼 a394268045 的回复:

oneStr,twoStr不是数字


要是这种错误的话 我就不用来发帖了

既然有基础这样的问题再找不到原因。那不还是你的问题。
这个函数只有两个原因产生错误,一个是溢出一个是数据格式不对。没有其他的原因了。 --------------------编程问答--------------------
引用 10 楼 a394268045 的回复:
Quote: 引用 9 楼 xl619569096 的回复:

Quote: 引用 6 楼 a394268045 的回复:

oneStr,twoStr不是数字

好歹我也是干 java web的 这点我还是知道的  已经如果我不进行转换 直接以这种形式输出skipText.setText(oneStr+twoStr);
是可以执行的 比如我传递的 2和3 activity中也能看到 但是一旦通过Integer.parseInt转换就会出错 

对了想起来了  我是通过第一个activity中的输入框中输入数字 然后后台接收 会不会是模拟器给我加上空格了。。。。。 --------------------编程问答--------------------
引用 11 楼 zanfeng 的回复:
Quote: 引用 8 楼 xl619569096 的回复:

Quote: 引用 6 楼 a394268045 的回复:

oneStr,twoStr不是数字


要是这种错误的话 我就不用来发帖了

既然有基础这样的问题再找不到原因。那不还是你的问题。
这个函数只有两个原因产生错误,一个是溢出一个是数据格式不对。没有其他的原因了。

我也正奇怪呢 如果非说我输入的不是数字的话 就只有一种解释了  模拟器自动给我的数字后面加上空格了  也就只有这样才能解释等下班回去试试  如果是这样就太蛋疼了
补充:移动开发 ,  Android
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,