androidbuttonclicklistener

One OnClickHandler for multiple Buttons


I find myself doing things like this all the time:

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

    button1.setOnClickListener(menuButtonListener);
    button2.setOnClickListener(menuButtonListener);
    button3.setOnClickListener(menuButtonListener);
...

and

   private OnClickListener myButtonListener = new OnClickListener() {
        @Override
        public void onClick(View v) {
      switch(v.getId()){
       case R.id.button1 :
    ...

Is there a better way to set the OnClickListener?


Solution

  • You can also set it in your layout xml using the android:onclick attribute.

    android:onClick="onClick"
    

    Then in your activity class add the onClick method.

    public void onClick(View v) {
    ...
    

    Here's the documentation.