java - "Catch"一种方法的多个按钮

标签 java android xml button android-layout

如果之前有人问过这个问题,请原谅我。我浏览了这个网站和许多其他网站,似乎找不到答案。我有一个正在运行的 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/

相关文章:

android - HTML 中的代码,用于通过 Phone gap 与其他应用程序交互共享内容,例如 ACTION_SEND

android - 在 android Activity 中的应用程序内显示 pdf 文件

android - Retrofit2 使用 RxJava 的 Observable 概念处理 HTTP 204(No Content response)情况

java - 添加 XMLAdapter 会导致 JAXBContext.newInstance 方法中出现 NullPointerException

java - 旋转 BufferedImage 会改变它的颜色

java - 或者在 Java 中有 3 个参数

java - Bean 引用为空

c# - 解析包含非法字符的 XML

java - 如何在具有特定属性的特定元素处写入 XML 文档?

Java如何从用户输入到方法搜索SQL