0

我的应用程序中的其他所有内容都有效,但是当我添加

public void onClickRandomColor(View v) {
        Random rRed = null;
        Random rGreen = null;
        Random rBlue = null;
        int min = 0, max = 255;
        int randomRed = rRed.nextInt(max - min + 1) + min;
        int randomGreen = rGreen.nextInt(max - min + 1) + min;
        int randomBlue = rBlue.nextInt(max - min + 1) + min;
        Rset = randomRed;
        Gset = randomGreen;
        Bset = randomBlue;
    }

到 MainActivity.java 和到 activity_main.xml 的 ONCLICK 行

<Button
        android:id="@+id/btnRandom"
        android:layout_below="@+id/btnChoose"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:layout_alignParentLeft="true"
        android:onClick="onClickRandomColor"
        android:text="@string/random"/>

她用力逼近我。还有很多其他控件,滑块使用 Rset、Gset 和 Bset 就好了。它必须与我获得随机整数的方法有关。

4

2 回答 2

1
  1. 您需要创建 Random 对象new Random()而不是分配 null。你不能在 null 上调用任何东西,你必须创建对象。
  2. 拥有三个不同的 Random 对象是没有意义的,您可以从单个对象中获得无限数量的随机数

您更正的代码如下所示:

public void onClickRandomColor(View v) {
    Random rnd = new Random();
    int min = 0, max = 255;
    int randomRed = rnd.nextInt(max - min + 1) + min;
    int randomGreen = rnd.nextInt(max - min + 1) + min;
    int randomBlue = rnd.nextInt(max - min + 1) + min;
    Rset = randomRed;
    Gset = randomGreen;
    Bset = randomBlue;
}
于 2012-09-21T23:14:14.807 回答
1

您正在创建初始化为空值的 Random 。

将它们更改为Random rRed = new Random();

你基本上是在尝试做 null.nextInt() 这显然是行不通的。

希望这会有所帮助!

干杯!

于 2012-09-21T23:16:28.083 回答