This question already has answers here:
One OnClickHandler for multiple Buttons
                                
                                    (6个答案)
                                
                        
                                3年前关闭。
            
                    
我有一个全屏的25个按钮的活动。我想知道是否还有一种更有效的方法是为它们创建侦听器,以使它们在单击时更改颜色,而不是: Button buttonA1; Button buttonA2; Button buttonA3; ... buttonA1 = (Button) findViewById(R.id.buttonA1); buttonA2 = (Button) findViewById(R.id.buttonA2); buttonA3 = (Button) findViewById(R.id.buttonA3); ...

然后为每个添加一个侦听器...

是否可以将所有这些压缩为更少的代码行?

最佳答案

您可以在XML文件中为每个按钮设置android:onClick。

android:onClick="onClick"


然后,您可以在MainActivity中使用类似的内容。

public void onClick(View v) {
 //Handle the buttons
 public void onClick(View v) {
 switch(v.getId())
 {
 case R.id.button_a_id:
 // handle button A click;
 break;
 case R.id.button_b_id:
 // handle button B click;
 break;
 default:
 throw new RuntimeException("Unknow button ID");
   }
      }


希望能帮助到你。

07-24 21:31