我正在创建一个应用程序,在课堂上我有这个随机:
public class Ejemplo extends Activity implements OnClickListener {
int ran=(int)(1*Math.random()) +1;
并且还有这个计数器
int contador= 0; // this is just to know how many time i won
然后我有2个按钮a1和a2
和我的onClick
switch (v.getId()) {
case R.id.a1:
if(ran == 1){
a1.setText("WIN");
contador= contador + 1;
}
else{
a1.setText("0");
}
a1.setClickable(false);
break;
case R.id.a2:
if(ran == 2){
a2.setText("WIN");
contador= contador + 1;
}
else{
a2.setText("0");
}
a2.setClickable(false);
break;
所以问题是,当我按下按钮:新游戏随机将具有相同数量的随机,我不能再次调用活动bc我不想重置我的计数器:contador。
我怎样才能重置我的随机,所以它并不总是选择相同的按钮?
答案 0 :(得分:2)
只需使用Random
代替Math.random
它更容易使用,您可以这样:
Random random = new Random(); // random generator
// then inside your onClick this code
if(random.nextBoolean()){
// win
} else {
// lose
}
https://developer.android.com/reference/java/util/Random.html
修改强>
它比你想做的要简单得多:
public class Ejemplo extends Activity implements OnClickListener {
Random random = new Random(); // random generator
// then inside the click listener:
@Override
public void onClick(View v) {
switch (v.getId()) {
case R.id.a1:
if(random.nextBoolean()){
a1.setText("WIN");
contador= contador + 1;
gano();
}
else{
a1.setText("0");
}
a1.setClickable(false);
break;
答案 1 :(得分:0)
将int ran=(int)(1*Math.random()) +1;
放在onClick
中,而不是将其声明为活动中的实例变量。因此,每次点击发生时,您的ran
变量都会有不同的值。