如何在一个Listener上设置4个按钮?

时间:2015-10-10 05:41:30

标签: java android button onclicklistener

这是一种简单的方法,但我不知道代码,所以我的意思是这样的

     button1 = (Button)findViewById(R.id.b1);
     button2 = (Button)findViewById(R.id.b2);
     button3 = (Button)findViewById(R.id.b3);
     button4 = (Button)findViewById(R.id.b4);

    //button1-button4.setOnClickListener(new View.OnClickListener() {

          public void onClick(View Button1-4){
            {
             //Do same method for button1-4
            }
          }
        });

     button5 = (Button)findViewById(R.id.b5);
     button6 = (Button)findViewById(R.id.b6);
     button7 = (Button)findViewById(R.id.b7);
     button8 = (Button)findViewById(R.id.b8);

    //button5-button8.setOnClickListener(new View.OnClickListener() {

          public void onClick(View Button5-8){
            {
             //Do same method for button5-8
            }
          }
        });

     button9  = (Button)findViewById(R.id.b9);
     button10 = (Button)findViewById(R.id.b10);
     button11 = (Button)findViewById(R.id.b11);
     button12 = (Button)findViewById(R.id.b12);

    //button5-button8.setOnClickListener(new View.OnClickListener() {

          public void onClick(View Button9-12){
            {
             //Do same method for button9-12
            }
          }
        });

所以我的项目中有12个按钮,我放入3组(布局),每组有4个按钮,我的意思是每个组中的4个按钮做同样的事情。

有人可以帮我提供一些示例代码吗?感谢' S

4 个答案:

答案 0 :(得分:2)

这是一个模板。希望这有帮助。

public class MyActivity extends Activity implements View.OnClickListener {

Button button1, button2, button3;

@Override
public void onCreate(Bundle bundle) {
    super.onCreate();

    ...

    button1 = (Button) findViewById(R.id.button1);
    button2 = (Button) findViewById(R.id.button2);
    button3 = (Button) findViewById(R.id.button3);

    button1.setOnClickListener(this);
    button2.setOnClickListener(this);
    button3.setOnClickListener(this);
}

@Override
public void onClick(View v) {
   switch(v.getId()) {
       case R.id.button1:
       // do stuff; You can called your method from here also.
       break;
       case R.id.button2:
       // do stuff;
       break;
   ...
 }
}

您也可以使用android:onclick属性在布局xml中设置它。

android:onClick="onClick"

然后在您的活动类中添加onClick方法。

public void onClick(View v) {
 //Write your code here
 if(v.getId==R.id.button1 || v.getId==R.id.button2 || v.getId==R.id.button3 ||v.getId==R.id.button4){
  // Do stuff
 }
}

答案 1 :(得分:0)

button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
button4.setOnClickListener(this);
button5.setOnClickListener(this);
button6.setOnClickListener(this);
button7.setOnClickListener(this);
button8.setOnClickListener(this);
button9.setOnClickListener(this);
button10.setOnClickListener(this);
button11.setOnClickListener(this);
button12.setOnClickListener(this);



@Override
public void onClick(View v) {

       if(v.getID==R.id.button1 || v.getID==R.id.button2 || v.getID==R.id.button3|| v.getID==R.id.button4){
       // fill

 }else if(v.getID==R.id.button5 || v.getID==R.id.button6 || v.getID==R.id.button7|| v.getID==R.id.button8){
       // fill

 }else if(v.getID==R.id.button9 || v.getID==R.id.button10 || v.getID==R.id.button11|| v.getID==R.id.button12){
       // sadsda;

 }

}

试试这个

答案 2 :(得分:0)

试试这个我希望你的问题得到解决..

 public class MyActivity extends Activity implements View.OnClickListener {

 Button button1, button2, button3,button4;

  @Override
public void onCreate(Bundle bundle) {
super.onCreate();

...

button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3);
button4 = (Button) findViewById(R.id.button4);

button1.setOnClickListener(this);
button2.setOnClickListener(this);
button3.setOnClickListener(this);
button4.setOnClickListener(this);
}

@Override
  public void onClick(View v) {
   if(v.getId==R.id.button1 || v.getId==R.id.button2 || v.getId==R.id.button3 ||v.getId==R.id.button4){
 // Do somthin what you want
}

 }
} 

答案 3 :(得分:0)

 public class MyActivity extends Activity implements View.OnClickListener {

Button button1, button2, button3;

@Override
public void onCreate(Bundle bundle) {
super.onCreate();

...

button1 = (Button) findViewById(R.id.button1);
button2 = (Button) findViewById(R.id.button2);
button3 = (Button) findViewById(R.id.button3);

}

@Override
public void onClick(View v) {
  switch(v.getId()) {
   case R.id.button1:
   // do stuff; You can called your method from here also.
   break;
   case R.id.button2:
   // do stuff;
   break;
 ...
}
}

这本身应该做的伎俩