修改。 我正在尝试制作一个游戏,其中有4个按钮,每个按钮都有一个设定值。 buttone是1 buttontwo是2,依此类推。 每按一下按钮,它就会从按下的按钮中取出值并将其添加到数组中,您必须按下的按钮数量由主要活动的意图和必须按下的按钮设置由randomNums数组设置。 例如。 如果randomNums给你1,2,1,1,2,3,3,4。 绿色按钮必须按3次 蓝色按钮必须按2次 必须按一次黄色按钮。 buttonOne必须按3次。 buttonTwo必须按2次。 buttonThree必须按2次。 buttonFour必须按一次。 我有randomNums,从1-4给你最多12个数字。 我设置了按钮,以便randomNums为您提供1,1,1,2,3,3。 ButtonOne将为绿色按钮,两个将为黄色,button3将为蓝色 持续3秒,然后所有按钮变为灰色。 但是我遇到麻烦的是你如何设置一个按钮来设定一个值。 例如。 如果我按下按钮1次,它将进入如此1,1,1的数组。 所以问题是如何为一个按钮设置一个固定值,这样每次按下它都会向数组发送一个修复值。
如果我第一次不清楚,如果你有任何疑问,或者你需要我再解释一下,或者想看看我必须设置按钮播放颜色的代码,请告诉我。谢谢嗨我对android studio很新, 我有4个按钮,我希望每个按钮都有一个固定值。
ButtonOne =1;
ButtonTwo =2;
ButtonThree =3;
ButtonFour =4;
当按下按钮时,我想将固定按钮值添加到数组中。 我所拥有的是发送一个++号码,而不是发送固定值。
所以我的问题是如何从四个按钮OnClickListener向数组发送多个固定int?
public int counterOne = 0;
final Button buttons[] = {
(Button) findViewById(R.id.ButtonOne),
(Button) findViewById(R.id.ButtonTwo),
(Button) findViewById(R.id.ButtonThree),
(Button) findViewById(R.id.ButtonFour)
};
buttons[0].setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
counterOne = counterOne+1;
CheckSET.setText(""+counterOne);
}
});
final int pressed[] =new int [12];
end.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String stringlevel = ""+CheckSET.getText();
String b = "";
final int intLevel = Integer.parseInt(stringlevel);
for (int i = 0; i < 12;i++){
//b = ""+ b +""+ pressed[i];
//pressed[i] = pressed[i]+1;
//if(intLevel==1){
// pressed[i] = pressed[i]+1;
//}else if (intLevel ==2){
// pressed[i] = pressed[i]+2;
//}
pressed[0] = counterOne;
b = ""+ b +""+ pressed[i];
diff.setText(b);
}
}
});
结束按钮是将所有按钮点击添加到数组中。 但是如果有更好的方法,那么做一个结束按钮来运行按钮数组会很棒。你可以做一个for()并在for中有所有按钮,每次按下它都会把它添加到数组中吗?
我有一个随机数组设置就可以从1-4中选择12个数字并且不会让任何数字重复超过3次。
private int[] pickNums() {
Random rand = new Random();
int randomNums[] = new int[12];
int one = 0;
int two = 0;
int three = 0;
int four = 0;
for (int i = 0; i < 12; i++) {
randomNums[i] = rand.nextInt(4)+1;
if (randomNums[i] == 1) {
one = one + 1;
if (one>3){
i=i-1;
}
} else if (randomNums[i] == 2) {
two = two + 1;
if (two>3){
i=i-1;
}
} else if (randomNums[i] == 3) {
three = three + 1;
if (three>3){
i=i-1;
}
} else if (randomNums[i] == 4) {
four = four + 1;
if (four>3){
i=i-1;
}
}
}
return randomNums;
}
我的计划是在randomNums和buttonPress数组上进行冒泡排序,以查看是否按下全部按钮==。 但我在使用buttonpress数组时遇到了很多麻烦
答案 0 :(得分:0)
我不确定你问的是什么,但可能会对你有所帮助 (而不是数组,你应该使用列表)
private List<Integer> pressedNums = new ArrayList<>();
Button button1,button2,button3,button4;
button1.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
pressedNums.add(1)
}
});
类似于button2,3,4添加2,3,4
最后你可以使用循环
int total = 0;
for(Integer i : pressedNums){
total += i;
}
textField.setText(Integer.toString(total));