我想知道如何在android中随机选择一个按钮。例如,有4个按钮,我希望应用程序从中随机选择一个按钮并对其执行一些操作。这是我的代码:

Button start;
ImageButton btn1, btn2, btn3, btn4, btn5;
Random random = new Random();

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_memory);
    start = (Button)findViewById(R.id.button1);
    start.setOnClickListener(this);
    btn1 = (ImageButton)findViewById(R.id.imageButton1);
    btn2 = (ImageButton)findViewById(R.id.imageButton2);
    btn3 = (ImageButton)findViewById(R.id.imageButton3);
    btn4 = (ImageButton)findViewById(R.id.imageButton4);

}

ImageButton[] all= {btn1, btn2, btn3, btn4};

@Override
public void onClick(View v) {
    if (v == start)
    {
        btn5 = all[random.nextInt(all.length)];
        btn5.setBackgroundColor(Color.RED);
    }
}


如果我更改为它,它可以完美工作,但是它将只是btn1而不是随机选择。

@Override
public void onClick(View v) {
    if (v == start)
    {
        btn5 = btn1;
        btn5.setBackgroundColor(Color.RED);
    }
}

最佳答案

在设置all等之后必须设置btn1:否则,它将是null的数组。

    btn1 = (ImageButton)findViewById(R.id.imageButton1);
    btn2 = (ImageButton)findViewById(R.id.imageButton2);
    btn3 = (ImageButton)findViewById(R.id.imageButton3);
    btn4 = (ImageButton)findViewById(R.id.imageButton4);
    all= {btn1, btn2, btn3, btn4}; //here
}

ImageButton[] all; //not here

关于java - 如何在Android中随机选择按钮?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20883238/

10-10 02:49