如何从四个按钮向数组添加多个fixed int

时间:2017-03-09 20:36:00

标签: android arrays onclicklistener

修改。 我正在尝试制作一个游戏,其中有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数组时遇到了很多麻烦

1 个答案:

答案 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));