所以我有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
}
}
可以做那种方法吗?如果有,任何人都可以帮我提供示例代码吗?感谢的
答案 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;
}
}
}
然后,您可以轻松地为多个按钮设置一个案例。