Android Studio中SeekBar随机数APP点击按钮崩溃问题求助
问题解决:点击按钮后APP崩溃的原因与修复方案
嘿,我帮你找到了导致APP崩溃的核心问题!从Logcat的错误日志里能看到关键报错:
android.content.res.Resources$NotFoundException: String resource ID #0x0
问题根源
你在点击事件里写了这行代码:
res.setText(r);
这里的r是一个int类型的随机数,而**TextView.setText(int)**这个方法的作用是根据传入的资源ID去查找对应的字符串资源,不是直接显示数字。当你传入0的时候,系统会去查找ID为0x0的字符串资源,显然不存在,所以就抛出了资源找不到的异常,导致APP崩溃。
修复方案
只需要把整数r转换成字符串再传入setText方法就行,有两种常用方式:
- 用
String.valueOf()转换:res.setText(String.valueOf(r)); - 把数字和空字符串拼接,自动转成字符串:
res.setText(r + "");
完整修改后的点击事件代码
Roll.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { int x = s1.getProgress(); Random rand = new Random(); int r = rand.nextInt(x + 1); // 简化写法,rand.nextInt(x-0+1)+0 等价于 rand.nextInt(x+1) res.setText(String.valueOf(r)); } });
额外优化小提示
- 你写的
rand.nextInt(x - 0 +1)+0可以简化成rand.nextInt(x + 1),效果完全一样,代码更简洁。 - 可以给SeekBar设置最小进度为1(在XML里设置
android:min="1"),避免用户设置0时生成的随机数一直是0,提升使用体验。
内容的提问来源于stack exchange,提问作者CharlieGone
相关产品推荐
相关产品推荐

