android - 一个按钮的多个onClickListener

标签 android android-fragments onclicklistener

我有一个 ImageButton,我可以在我的 Activity 和 Fragment 中访问它。 我希望在这两个类中完成操作,所以我为它们都实现了一个 onClickListener。

     @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity);

        ImageButton imageButton = (ImageButton) findViewById(R.id.my_image_button);
        imageButton.setOnClickListener(new OnClickListener() ...);
    }

以及此 Activity 启动的 fragment 的相同简单代码 (但在 onViewCreated 中)。

我试过了,只触发了Fragment的onClickListener。

所以,这是我的问题,有没有办法让我的按钮同时触发 Activity 和 Fragment 的 onClickListener?

我知道我可以从 Activity 的 onClick 中调用 Fragment 的方法,但在 Fragment 内部触发它会简单得多。

编辑:

愿意不惜一切代价通过两个 OnClickListener 来做到这一点,以防万一有比 Activity 到 Fragment 回调更简单的方法(在我的例子中) ).

正如空婚礼所说,第二个 onClickListener 会禁用第一个。在这种情况下,只剩下回调。

另外,稍微考虑一下,这也会让代码更容易理解。回调,是的!

最佳答案

View.setOnClickListener 只支持设置一个监听器。如果调用两次,后面的监听器会覆盖前面的监听器,只有后面的监听器会收到通知。 所以从 Activity 的 onClick 调用 Fragment 的方法似乎对你有好处。 而如果ImageButton定义在Activity的layout中,通知别人,暴露一些方法等只在Activity中处理就好了。

关于android - 一个按钮的多个onClickListener,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38323988/

相关文章:

android - 如何在tablayout android中设置带有图标的文本

javascript - 单击 React 组件外部时关闭菜单

android - 如何获取当前在 imageview (Kotlin) 中的图像名称?

android - 运行 android 应用程序时出现 ADB 错误

android - 当你在 Android 中启动同一个服务两次时会发生什么?

android - 跨不同设备处理 EditText 中的输入键

c# - 如何在 OncreateView 中运行一些异步的东西?

android - 导航组件 popBackStack() 是否保留 fragment 状态?

android - 如何在 fragment 中实现按钮 SetOnClickListener?

java - 每个类都必须有自己的 OnClickListener 吗?