如果之前有人问过这个问题,请原谅我。我浏览了这个网站和许多其他网站,似乎找不到答案。我有一个正在运行的 Android 应用程序,但我正在尝试清理代码。我有 3 个按钮:
public Button button1, button2, button3;
然后,我有一个“抢”点击的方法:
public void getButtonClick(View view)
{
switch(view.getId())
{
case R.id.button1:
// Do something button1 related here
break;
case R.id.button2:
// Do something button2 related here
break;
case R.id.button3:
// Do something button3 related here
}
}
我想知道的是,是否有任何方法可以让我拥有一个通用方法,它只会等待按钮单击并获取该变量,这样我就可以避免使用多个 switch-case 语句。在线的东西:
public void oneMethodForAll(View view)
{
clkdBtn = view.getButtonThatWasClicked();
// Do stuff
}
非常感谢任何帮助。时间差
最佳答案
您可以做的一件事是让 Activity 实现 View.OnClickListener
:
public class FooActivity implements View.OnClickListener {
@Override
protected void onCreate(Bundle icicle) {
Button btn1 = (Button) findViewById(R.id.button1);
btn1.setOnClickListener(this);
Button btn2 = (Button) findViewById(R.id.button2);
btn2.setOnClickListener(this);
}
@Override
public void onClick(View view) {
switch (view.getId()) {
case R.id.button1:
// Button 1 was clicked
break;
case R.id.button2:
// Button 2 was clicked
break;
}
}
}
这会为您节省一些输入,因为您没有创建一堆匿名点击处理程序,但您仍然需要单独设置每个按钮的 onClickListener
。
关于java - "Catch"一种方法的多个按钮,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7772713/