Android中EditText文本转int报错Resources$NotFoundException求助
问题根源与解决办法
兄弟,你这个错误根本不是EditText转int的锅!问题出在Toast的调用上!
你看,Android的Toast.makeText()有两个重载方法:一个是传字符串文本,另一个是传字符串资源ID(就是R.string.xxx那种int值)。你现在把int类型的minput直接传进去,系统会误以为你要找对应ID的字符串资源——比如你输入的是5,系统就去查ID为#0x5的资源,可你压根没定义这个资源,这不就报找不到资源的异常了嘛!
修正代码
只需要把minput转换成字符串再传给Toast就行,最简单的写法:
temp = String.valueOf(editm.getText()); minput = Integer.parseInt(temp); // 把int转成字符串再传入Toast Toast.makeText(this, String.valueOf(minput), Toast.LENGTH_SHORT).show();
或者想加个提示文本也可以:
Toast.makeText(this, "你输入的数值是:" + minput, Toast.LENGTH_SHORT).show();
额外提醒
另外,你直接用Integer.parseInt()还有个隐患:如果EditText是空的或者输入了非数字内容,会抛出NumberFormatException,建议加个异常捕获处理,让代码更健壮:
try { // 先trim去掉首尾空格,避免输入空格导致转换失败 String temp = editm.getText().toString().trim(); int minput = Integer.parseInt(temp); Toast.makeText(this, String.valueOf(minput), Toast.LENGTH_SHORT).show(); } catch (NumberFormatException e) { Toast.makeText(this, "请输入有效的整数哦", Toast.LENGTH_SHORT).show(); e.printStackTrace(); }
内容的提问来源于stack exchange,提问作者amff
相关产品推荐
相关产品推荐

