Android - 随机列出按钮

时间:2014-09-16 22:11:31

标签: android arrays random arraylist

我是一名新手Android程序员。

我想创造一个简单的游戏。

游戏;

显示介于1到10之间的随机数,假设它是主编号。 显示4个按钮。 第一个按钮值是mainnumber。 第二个按钮值是mainnumber + 1 第三个按钮值是mainnumber - 1 最后一个按钮值是mainnumber + 2

怎么玩; 如果用户单击了正确的按钮(主编号),它将显示另一个数字和按钮。

我的代码;

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

    Button b1 = (Button)findViewById(R.id.answer_one);
    Button b2 = (Button)findViewById(R.id.answer_two);
    Button b3 = (Button)findViewById(R.id.answer_three);
    Button b4 = (Button)findViewById(R.id.answer_four);

    Random number = new Random();
    int mainnumber = number.nextInt(10)+1;
    int rnd1 = mainnumber + 1;
    int rnd2 = mainnumber + 2;
    int rnd3 = mainnumber - 1;

    String a = Integer.toString(mainnumber);
    String b = Integer.toString(rnd1);
    String c = Integer.toString(rnd2);
    String d = Integer.toString(rnd3);


    ((TextView) findViewById(R.id.display)).setText(Integer.toString(mainnumber));

    List<Button> buttons = Arrays.asList(b1, b2, b3, b4);
    List<String> texts = Arrays.asList(a, b, c, d);
    Random rand = new Random();
    buttons.get(rand.nextInt()).setText(texts.get(rand.nextInt()));
}

获取系统错误,并关闭应用。

问题; 如何每次随机显示按钮,如何检查单击按钮是否为真按钮。

...谢谢

1 个答案:

答案 0 :(得分:1)

 Collections.shuffle(texts);//shuffle the buttons
 //shuffle the buttons if you want as well, but whatever..
 int i = 0;
 //for loop moved below..
 /*
 for(Button button : buttons)
 {
     button.setText(texts.get(i++));
 }
 */
//custom android.view.View.OnClickListener instance.
OnClickListener onClick = new OnClickListener()
{
    public void onClick(View view)
    {
         Button button = (Button) view;//safe cast since this is only added to buttons.
         String value = button.getText();
         //process button value..
    } 

};

for(Button button : buttons)
{
    button.setText(texts.get(i++));
    button.setOnClickListener(onClick);
}