android - 在一个类中保留多个 OnClickListeners

标签 android onclick

我是 Android 的新手,如果我能在一个类中保留多个 OnClickListenres,它会大大改进我的应用程序。我在想的是这样的:

Public class OnClickListeners {

public Button.OnClickListener open;
public Button.OnClickListener doSomethingElse;
public Button.OnClickListener etc;

    public OnClickListeners() {
        open = new Button.OnClickListener()
        {
                public void onClick(View view)
                {
                    DetailList.SetId(view.getId());
                    Intent intent = new Intent(view.getContext(), DetailList.class);
                    startActivityForResult(intent, 100);
                }
        };
    }
}

所以我可以像这样在其他类 B 中引用它

button1.setOnClickListener(OnClickListeners.open);

有什么办法吗? Android SDK 似乎对我不利,因为我现在可以弄清楚大约 2 天了......

感谢您的建议和帮助

最佳答案

有一种巧妙的方法可以将所有匿名类合并为一个并打开 View 。如果您提前知道哪些按钮将使用点击监听器,则此方法效果最佳:

public class AndroidTestClickListenerActivity extends Activity {

    /** Called when the activity is first created. */
    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.main);

        Button button1 = (Button) findViewById(R.id.button1);
        button1.setOnClickListener(new MyClickListener());

        Button button2 = (Button) findViewById(R.id.button2);
        button2.setOnClickListener(new MyClickListener());

        Button button3 = (Button) findViewById(R.id.button3);
        button3.setOnClickListener(new MyClickListener());
    }


}

class MyClickListener implements View.OnClickListener {
    @Override
    public void onClick(View arg0) {
        switch (arg0.getId()) {
            case R.id.button1:
                // do soemthign for button1
                break;
            case R.id.button2:
                // do something for button2
                break;
            case R.id.button3:
                // do something for button3
                break;
            default:
                // do something for any other button

        }

    }
}

关于android - 在一个类中保留多个 OnClickListeners,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7529200/

相关文章:

Android Intent Butchers 数据

javascript - 在Jquery中定义一个按钮的onclick事件

r - Link R Shiny select输入项打开文件actionButton

javascript - 当有多个动态添加的按钮时,不会触发 onclick 事件

android - (实例中缺少 Vulkan 1.0 API)通过 Android Studio 3.5 和 3.6 Canary 9 启动 Android Emulator(Q API 29)时

javascript - "Undefined"将数据从 Android 传递到 JavaScript

java - 如何知道我的手指在哪里、在哪个布局上?

javascript - 单击按钮后未调用Web Audio ScriptNode

jquery - 从选择 <p> onclick 获取文本

android - 如何删除 kotlin 字符串中的第一个字符