You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.06 23:47:35