您如何对在Java中声明为开关的数组求和?

时间:2019-03-21 20:37:33

标签: java android arrays

我是Java的新手,正在使用它构建一个Android应用程序,我希望能够确定打开了多少个开关,但不确定如何汇总开关数组的最佳方法。我目前有:

SS = new Switch[8];
SS[0] = getView().findViewById(R.id.switch1);
SS[1] = getView().findViewById(R.id.switch2);
SS[2] = getView().findViewById(R.id.switch3);
SS[3] = getView().findViewById(R.id.switch4);
SS[4] = getView().findViewById(R.id.switch5);
SS[5] = getView().findViewById(R.id.switch6);
SS[6] = getView().findViewById(R.id.switch7);
SS[7] = getView().findViewById(R.id.switch8);

submit = getView().findViewById(R.id.submitButton);

submit.setOnClickListener(new View.OnClickListener(){
    public void onClick (View v) {
        totalactive= IntStream.of(SS).sum();

,将数组“ SS”声明为全局类。

谢谢

2 个答案:

答案 0 :(得分:0)

onClick内使用for each循环:

totalactive = 0;
for (Switch s : SS) {
    if (s.isChecked()) totalactive++;
}

答案 1 :(得分:0)

到目前为止,所有答案都很棒!但是,然后,您也可以按照传统的方式进行操作:

int totalactive = 0;

for(int i = 0; i < SS.length; i++){
    if(SS[i].isChecked()){
        totalactive++;
    }
}

//Here's your result:
Log.d("sumTotal", Integer.toString(totalactive));

我敢打赌,这很容易理解和联系。我希望这有帮助。快活的编码!