如何在安卓 java中将数字字符串值转换为整数?
我有这个密码:
public void display(View view) {
EditText edC = (EditText) findViewById(R.id.edC);
TextView tvD = (TextView) findViewById(R.id.tvDisplay);
try {
String creditsS = edC.getText().toString();
int credits = Integer.valueOf(creditsS);
tvD.setText(credits);
} catch(NumberFormatException nfe) {
tvD.setText("Couldn't parse.");
}
}
当我运行程序并点击按钮时,应用程序崩溃了。我也试过了
int credits = Integer.parseInt(creditsS)
没用。问题出在哪里
顺便说一句,我无法打印stacktrace,因为logcat会像无限循环一样继续显示错误。 谢谢。:)
# 1 楼答案
应用程序因以下原因崩溃:
问题是,您使用
int
作为参数调用setText()
。该方法被定义为接受int
,因此编译器不会抱怨,但这些int
应该是字符串资源的ID。如果你用任意随机int
调用setText()
,应用程序会试图找到一个具有该id的字符串资源,并在执行此操作时与Resources$NotFoundException
崩溃只需将该行更改为以下内容:
# 2 楼答案
由于您尚未发布
StackTrace
,因此解决您的问题可能会变得棘手正如@FD_u在他的回答中所解释的那样,你得到了一个未受伤害的异常
作为一个很好的预防措施,在传递字符串之前,应该
trim()
所有字符串您应该这样编辑代码:
我希望这有帮助