强制关闭!!用于在RGB值0-255中指定随机颜色的按钮

时间:2012-09-21 23:07:00

标签: java android button random integer

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

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,ONCLICK行到activity_main.xml

<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就好了。它必须与我获取随机整数的方法有关。

2 个答案:

答案 0 :(得分:1)

  1. 您需要使用new Random()创建Random对象,而不是指定null。你不能在null上调用任何东西,你必须创建对象。
  2. 拥有三个不同的Random对象是没有意义的,你可以从一个对象中获得无限数量的随机数
  3. 您更正后的代码如下所示:

    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;
    }
    

答案 1 :(得分:1)

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

将其更改为Random rRed = new Random();

你基本上是想做null.nextInt(),这显然不会起作用。

希望这有帮助!

干杯!