我有一个 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/