gpt4 book ai didi

java - 为什么我的应用程序停止工作?

转载 作者:行者123 更新时间:2023-12-02 12:57:43 26 4
gpt4 key购买 nike

因此,我正在尝试创建一个应用程序,该应用程序获取 1 到 4 之间的随机数(1 包含在内,4 不包含在内),在获取该数字之后,它会将我的主 Activity 的背景颜色更改为相关数字:

如果得到数字1:更改为蓝色如果数字 2:更改为黑色如果3:改为黄色

代码如下:

@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);

Button button = (Button) findViewById(R.id.button);
Button button2 = (Button) findViewById(R.id.button2);

button.setOnClickListener( new View.OnClickListener() {

public void onClick(View v) {

LinearLayout layout = (LinearLayout) findViewById(R.id.layout);
Random rnd = new Random();
int random = rnd.nextInt(1 - 4);

if (random == 1) {

layout.setBackgroundColor(Color.BLUE);

} else if (random == 2) {

layout.setBackgroundColor(Color.BLACK);

} else {

layout.setBackgroundColor(Color.YELLOW);

}


}
}
);
}

代码对我来说似乎很好,Android Studio 不会报告任何错误(仅因按钮2而发出警告),但每次我点击按钮时,应用程序都会关闭并显示“不幸的是,锻炼已停止。”

我的问题是:为什么点击按钮后应用程序停止工作?

(如果需要更多信息,请告诉我。我从来没有问过,而且我在询问和 Android 开发方面还是个新手)

最佳答案

rnd.nextInt(1 - 4); 计算结果为 rnd.nextInt(-3); 并且会抛出 IllegalArgumentException否定论据。

由于您没有自己处理该异常,因此您的应用程序会发生不好的事情。要生成某个范围内的随机整数,请参阅 How do I generate random integers within a specific range in Java?

引用:https://docs.oracle.com/javase/7/docs/api/java/util/Random.html#nextInt(int)

关于java - 为什么我的应用程序停止工作?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44372370/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com