选中所有视图';Android中if语句的背景是什么?

选中所有视图';Android中if语句的背景是什么?,android,if-statement,Android,If Statement,我有许多按钮(81)从左侧和右侧的部分,我的布局。总而言之,我有162个按钮。我把这些按钮放在按钮[]上,我处理得很好 private int[] right_lung = { R.id.btn_right_106, R.id.btn_right_113, R.id.btn_right_114, R.id.btn_right_115, R.id.btn_right_116, R.id.btn_right_121, R.id.btn_right_122, R

我有许多按钮(81)从左侧和右侧的部分,我的布局。总而言之,我有162个按钮。我把这些按钮放在按钮[]上,我处理得很好

    private int[] right_lung = { R.id.btn_right_106, R.id.btn_right_113,
        R.id.btn_right_114, R.id.btn_right_115, R.id.btn_right_116, R.id.btn_right_121,
        R.id.btn_right_122, R.id.btn_right_123, R.id.btn_right_124, R.id.btn_right_125,
        R.id.btn_right_129, R.id.btn_right_130, R.id.btn_right_131, R.id.btn_right_132,
        R.id.btn_right_133, R.id.btn_right_134, R.id.btn_right_137, R.id.btn_right_138,
        R.id.btn_right_139, R.id.btn_right_140, R.id.btn_right_141, R.id.btn_right_142,
        R.id.btn_right_143, R.id.btn_right_145, R.id.btn_right_146, R.id.btn_right_147,
        R.id.btn_right_148, R.id.btn_right_149, R.id.btn_right_150, R.id.btn_right_151,
        R.id.btn_right_152, R.id.btn_right_153, R.id.btn_right_154, R.id.btn_right_155,
        R.id.btn_right_156, R.id.btn_right_157, R.id.btn_right_158, R.id.btn_right_159,
        R.id.btn_right_160, R.id.btn_right_161, R.id.btn_right_162, R.id.btn_right_163,
        R.id.btn_right_164, R.id.btn_right_165, R.id.btn_right_166, R.id.btn_right_167,
        R.id.btn_right_168, R.id.btn_right_169, R.id.btn_right_170, R.id.btn_right_171,
        R.id.btn_right_172, R.id.btn_right_173, R.id.btn_right_174, R.id.btn_right_175,
        R.id.btn_right_176, R.id.btn_right_177, R.id.btn_right_178, R.id.btn_right_179,
        R.id.btn_right_180, R.id.btn_right_181, R.id.btn_right_182, R.id.btn_right_183,
        R.id.btn_right_184, R.id.btn_right_185, R.id.btn_right_186, R.id.btn_right_187,
        R.id.btn_right_188, R.id.btn_right_189, R.id.btn_right_190, R.id.btn_right_191,
        R.id.btn_right_192, R.id.btn_right_194, R.id.btn_right_195, R.id.btn_right_196,
        R.id.btn_right_197, R.id.btn_right_198, R.id.btn_right_199, R.id.btn_right_200,
        R.id.btn_right_205, R.id.btn_right_206, R.id.btn_right_207 };

private Button[] btn_right = new Button[right_lung.length];

private int[] left_lung = { R.id.btn_left_7, R.id.btn_left_13, R.id.btn_left_14,
        R.id.btn_left_15, R.id.btn_left_16, R.id.btn_left_20, R.id.btn_left_21,
        R.id.btn_left_22, R.id.btn_left_23, R.id.btn_left_24, R.id.btn_left_27,
        R.id.btn_left_28, R.id.btn_left_29, R.id.btn_left_30, R.id.btn_left_31,
        R.id.btn_left_32, R.id.btn_left_34, R.id.btn_left_35, R.id.btn_left_36,
        R.id.btn_left_37, R.id.btn_left_38, R.id.btn_left_39, R.id.btn_left_40,
        R.id.btn_left_41, R.id.btn_left_42, R.id.btn_left_43, R.id.btn_left_44,
        R.id.btn_left_45, R.id.btn_left_46, R.id.btn_left_47, R.id.btn_left_48,
        R.id.btn_left_49, R.id.btn_left_50, R.id.btn_left_51, R.id.btn_left_52,
        R.id.btn_left_53, R.id.btn_left_54, R.id.btn_left_55, R.id.btn_left_56,
        R.id.btn_left_57, R.id.btn_left_58, R.id.btn_left_59, R.id.btn_left_60,
        R.id.btn_left_61, R.id.btn_left_62, R.id.btn_left_63, R.id.btn_left_64,
        R.id.btn_left_65, R.id.btn_left_66, R.id.btn_left_67, R.id.btn_left_68,
        R.id.btn_left_69, R.id.btn_left_70, R.id.btn_left_71, R.id.btn_left_72,
        R.id.btn_left_73, R.id.btn_left_74, R.id.btn_left_75, R.id.btn_left_76,
        R.id.btn_left_77, R.id.btn_left_78, R.id.btn_left_79, R.id.btn_left_80,
        R.id.btn_left_81, R.id.btn_left_82, R.id.btn_left_83, R.id.btn_left_84,
        R.id.btn_left_85, R.id.btn_left_86, R.id.btn_left_87, R.id.btn_left_88,
        R.id.btn_left_89, R.id.btn_left_90, R.id.btn_left_91, R.id.btn_left_92,
        R.id.btn_left_93, R.id.btn_left_94, R.id.btn_left_95, R.id.btn_left_98,
        R.id.btn_left_99, R.id.btn_left_100, };

private Button[] btn_left = new Button[left_lung.length];
每当我点击按钮时,就像在扫雷游戏中一样,许多按钮都会随机打开。当它打开时,我正在将其背景更改为R.drawable.impact。游戏的目标是打开左右两侧的所有按钮。我的问题是,如何检查是否所有按钮都设置为R.drawable.Infected?因为在那之后,我将执行一个方法来祝贺用户。提前谢谢

编辑:

for (int i = 0; i < btn_right.length; i++) {
   final int a = i;
   int counter_total_affected = 0;
   btn_right[i].setOnClickListener(new OnClickListener() {

      @Override
          public void onClick(View v) {
              if (counter == 1) {
                   right_lung.add(a);
                   btn_right[a].setBackgroundResource(R.drawable.affected);
           counter_total_affected++;
              } else if (counter == 2) {
                   for (int i = 0; i < 2; i++) {
                       int n = i;
                       right_lung.add(a + n);
                   }

                   try {
                       for (int i = 0; i < 2; i++) {
                           int n = i;
                           btn_right[a + n].setBackgroundResource(R.drawable.affected);
                           counter_total_affected++;
                       }
                   } catch (Exception e) {
                        e.printStackTrace();
                   }

              } else if (counter == 3) {
                   right_lung.add(a);
                   btn_right[a].setBackgroundResource(R.drawable.affected);
                   counter_total_affected++;

              } else if (counter == 4) {
                   for (int i = 0; i < 25; i++) {
                       int n = i;
                       right_lung.add(a + n);
                   }

                   try {
                       for (int i = 0; i < 25; i++) {
                           int n = i;
                           btn_right[a + n].setBackgroundResource(R.drawable.affected);
                           counter_total_affected++;
                       }
                   } catch (Exception e) {
                       e.printStackTrace();
                   }

              } else if (counter == ...) {
                   //statements...
              }  else if (counter_total_affected == (btn_left.length + btn_right.length)) {
                    //CONGRATULATORY METHOD
              }
              counter++;
          }
}
for(int i=0;i
U可以设置标签:

for (int i = 0; i < btn_right.length; i++) {
   final int b = i;
   btn_right[i].setOnClickListener(new OnClickListener() {

      @Override
          public void onClick(View v) {
              if (counter == 1) {
                   right_affected.add(b);
                   btn_right[b].setBackgroundResource(R.drawable.affected);
                   btn_right[b].setTag('1');
              } else {
                   //some stuff here...
              }
          }
}
祝贺:

for(int i=0;i<arrayofId.size();i++)
{
// you can get here id of effected buttons
}

for(int i=0;i每次更改按钮的背景并将其值与按钮数组的长度进行比较时,递增计数器。如果两者相同,则表示设置所有按钮背景

试试这个:

   for (int i = 0; i < btn_right.length; i++) {
       final int b = i;
       btn_right[i].setOnClickListener(new OnClickListener() {

          @Override
              public void onClick(View v) {
                if btn_right[i].getDrawable().getConstantState().equals
                (getResources().getDrawable(R.drawable.affected).getConstantState()))
                 {
                          if(counter == btn_right.length){
                           //Congratulate user...
                          }
                 }else{   
                       btn_right[b].setBackgroundResource(R.drawable.affected);
                       counter++;
                 }
              }
        }
for(int i=0;i
在if(counter==1)之后,我还有另外10个if。你的意思是,从所有这些if中,我将放置setTag()是的,我需要检查我所有的按钮是否都受到影响,然后我会执行我的祝贺方法…哦…然后你可以取一个int的空数组列表,然后在更改其背景时放入它们的id。检查我编辑的答案。
   for (int i = 0; i < btn_right.length; i++) {
       final int b = i;
       btn_right[i].setOnClickListener(new OnClickListener() {

          @Override
              public void onClick(View v) {
                if btn_right[i].getDrawable().getConstantState().equals
                (getResources().getDrawable(R.drawable.affected).getConstantState()))
                 {
                          if(counter == btn_right.length){
                           //Congratulate user...
                          }
                 }else{   
                       btn_right[b].setBackgroundResource(R.drawable.affected);
                       counter++;
                 }
              }
        }