一个按钮的多个 onClickListener

Ced*_*ric 4 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() ...);
    }
Run Code Online (Sandbox Code Playgroud)

以及此活动启动的片段的相同简单代码段(但在 onViewCreated 中)。

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

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

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

编辑 :

不是愿意通过两个OnClickListener为此不惜任何代价,这是以防万一有比活动到碎片回调简单的方法(在我的情况)。

作为 ???说,第二个 onClickListener 会禁用第一个。在这种情况下,只剩下回调。

另外,稍微思考一下,它也会使代码更容易理解。回调,是的!

小智 5

View.setOnClickListener 只支持设置一个监听器。如果调用两次,后面的监听器会覆盖前面的监听器,只通知后面的监听器。因此,从 Activity 的 onClick 调用 Fragment 的方法似乎对您有好处。并且如果在Activity的布局中定义了ImageButton,那么只在Activity中处理比如通知别人,暴露一些方法也不错。