【发布时间】:2017-04-17 07:29:46
【问题描述】:
我是android编程的菜鸟,想在特定范围内随机生成一些数字。假设其中两个之和等于某个数,我在onCreate() 和onRestart 中写了以下内容,以便在每次活动开始时重新生成它们,但并非每次都有效:
//i1,i2,i3..... are initialized in the class body as integers
do {
i1=r.nextInt((30-1)+1)+1;
i2=r.nextInt((30-1)+1)+1;
i3=r.nextInt((30-1)+1)+1;
i4=r.nextInt((30-1)+1)+1;
i5=r.nextInt((30-1)+1)+1;
i6=r.nextInt((30-1)+1)+1;
i7=r.nextInt((30-1)+1)+1;
i8=r.nextInt((30-1)+1)+1;
i9=r.nextInt((30-1)+1)+1;
} while (i1+i2!=25);
String[] str= {String.valueOf(i1),String.valueOf(i2),String.valueOf(i3),
String.valueOf(i4),String.valueOf(i5),String.valueOf(i6),
String.valueOf(i7),String.valueOf(i8),String.valueOf(i9)};
btn1= (Button) findViewById(R.id.btn1);
btn2= (Button) findViewById(R.id.btn2);
btn3= (Button) findViewById(R.id.btn3);
btn4= (Button) findViewById(R.id.btn4);
btn5= (Button) findViewById(R.id.btn5);
btn6= (Button) findViewById(R.id.btn6);
btn7= (Button) findViewById(R.id.btn7);
btn8= (Button) findViewById(R.id.btn8);
btn9= (Button) findViewById(R.id.btn9);
btn1.setOnClickListener(this);
btn2.setOnClickListener(this);
btn3.setOnClickListener(this);
btn4.setOnClickListener(this);
btn5.setOnClickListener(this);
btn6.setOnClickListener(this);
btn7.setOnClickListener(this);
btn8.setOnClickListener(this);
btn9.setOnClickListener(this);
// this is the code which distribute the numbers randomly to the buttons:
btn1.setText(str[random.nextInt(str.length)]);
btn2.setText(str[random.nextInt(str.length)]);
btn3.setText(str[random.nextInt(str.length)]);
btn4.setText(str[random.nextInt(str.length)]);
btn5.setText(str[random.nextInt(str.length)]);
btn6.setText(str[random.nextInt(str.length)]);
btn7.setText(str[random.nextInt(str.length)]);
btn8.setText(str[random.nextInt(str.length)]);
btn9.setText(str[random.nextInt(str.length)]);
有时确实有两个数字的总和为“25”,但有时没有,我不明白原因。 而且,我想知道如何在不重复的情况下生成这些数字。
【问题讨论】:
-
可以动态创建按钮吗?
-
你能解释更多吗? @RushiAyyappa