如何制作按钮监听器组方法?

时间:2015-10-31 11:06:30

标签: java android button

所以我有12个按钮,我想让每个4个按钮做同样的方法,所以它是这样的

   @Override
    public void onClick(View one) {

           if(one==button1|| one==button2|| one==button3|| one==button4){
              //do something
   }
}
   @Override
    public void onClick(View two) {

           if(two==button5|| two==button6|| two==button7|| two==button8){
              //do something
   }
}
   @Override
    public void onClick(View three) {

           if(three==button9|| three==button10|| three==button11|| three==button12){
              //do something
   }
}

可以做那种方法吗?如果有,任何人都可以帮我提供示例代码吗?感谢的

3 个答案:

答案 0 :(得分:1)

为多个按钮创建一个侦听器:

OnClickListener listener1 = new OnClickListener() {
        @Override
        public void onClick(View v) {
            // some code
        }
};

button1.setOnClickListener(listener1);
button2.setOnClickListener(listener1);
button3.setOnClickListener(listener1);
button4.setOnClickListener(listener1);


OnClickListener listener2 = new OnClickListener() {
        @Override
        public void onClick(View v) {
            // some code
        }
};

button5.setOnClickListener(listener2);
button6.setOnClickListener(listener2);
button7.setOnClickListener(listener2);
button8.setOnClickListener(listener2);

或在侦听器中使用switch,如下所示:

@Override
public void onClick(View button) {
   switch (button.getTag())(
       case 'button1':
       case 'button2':
       case 'button3':
           // do something
           break;
       case 'button4':
       case 'button5':
       case 'button6':
           // do anotherthing
           break;          
   }
}

正如Abhishek Kumar所说,你可以将听众设置为按xml:

android:onClick="onClick"

答案 1 :(得分:0)

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

即。前4个按钮

android:onClick="onClickGroup1"

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

public void onClickGroup1(View v) {
...

答案 2 :(得分:0)

我会让Activity实现一个OnClickListener

public class MainAcivity extends AppCompatActivity implements View.OnClickListener {
    private Button buttonOne
    private Button buttonTwo
    ...

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        Button buttonOne = (Button) rootView.findViewById(R.id.buttonOne);
        Button buttonTwo = (Button) rootView.findViewById(R.id.buttonTwo);
        ...


        buttonOne.setOnClickListener(this);
        buttonTwo.setOnClickListener(this);
        ...
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.buttonOne:
                // do something
                break;
            case R.id.buttonTwo:
                // do something
                break;
        }
    }
}

然后,您可以轻松地为多个按钮设置一个案例。