Reputation: 217
So i have 12 button that i want to make every 4 button do same method, so it is something like this
@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
}
}
it is possible to do that method? if yes can anyone help me give sample code for that? Thank's
Upvotes: 0
Views: 118
Reputation: 421
I would make the Activity implement an 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;
}
}
}
You can easily have one case for multiple buttons then.
Upvotes: 0
Reputation: 1055
Create one listener for multiple buttons:
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);
or use switch in listener, like this:
@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;
}
}
As Abhishek Kumar said, you can set listeners to button at xml:
android:onClick="onClick"
Upvotes: 1
Reputation: 378
You can also set it in your layout xml using the android:onclick attribute.
ie. for first 4 Buttons
android:onClick="onClickGroup1"
Then in your activity class add the onClick method.
public void onClickGroup1(View v) {
...
Upvotes: 0