因此,我尝试制作一个计算器应用程序(只是为了摆脱android开发的困扰),并且通过一些测试发现,从“ String tack1”进行的parseInt转换导致该应用程序崩溃.有人可以告诉我为什么吗?我似乎无法弄清楚,我已经在互联网上搜索了很长一段时间. (嘿,我是菜鸟,所以请放轻松.)在下面的代码中,我修改了几行,以使其看上去应该打印的内容显而易见,但仍然崩溃.这是代码:
equals.setonClickListener(new VIEw.OnClickListener() { @OverrIDe public voID onClick(VIEw v) { oC = 1; //operator checker is on 1 (for plus) switch(oC){ //check for operator clicked case 0: break; case 1: tack1 = "1"; //INSERTED THIS TO MAKE OUTPUT OBVIoUS tack1 = tack1.trim(); tack2 = tack2.trim(); //INSERTED BEFORE TO DEAL WITH WHITESPACE numOne = Integer.parseInt(tack1); //CRASHES HERE answer.setText(numOne); modeChecker = 0; oC = 0;break;
程序注释(重复一些评论,以及其他内容):
该tack1 =“ 1”;使输出明显
tack1.trim()用于处理空格
是的,附带条件的是数字和整数(甚至不是负整数)
是的,numOne是一个整数,在上面定义过(不是在此处列出的代码中)
抱歉,由于我添加的注释,所有缩进都搞砸了(案例1之后)
这是我的onClick方法的一部分,因此此处不包括右括号.
有人可以帮帮我吗?
谢谢:D
解决方法:
我愿意打赌它实际上是在parseInt调用之后的下一行崩溃的.
您正在TextVIEw上调用setText(int).当您将int传递给此方法时,该int是指向字符串资源的指针…您可能期望自动转换为字符串.由于您要传递的是应用程序中生成的int值,因此该int值极不可能指向res / values / strings.xml文件中的字符串资源.您真正想要做的是首先将numOne更改为字符串,您可以内联执行此 *** 作:
更改
answer.setText(numOne);
至
answer.setText(String.valueOf(numOne));
而且你很好.
总结以上是内存溢出为你收集整理的parseInt崩溃的android应用全部内容,希望文章能够帮你解决parseInt崩溃的android应用所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)