委派单击“查看单击事件到活动”

时间:2014-05-06 19:22:01

标签: android design-patterns android-fragments

这是一个Android设计模式问题。我想将View的所有单击事件处理委托给包含View的Activity。结构如下:

根Activity包含一个ListFragment,ListFragment包含一个自定义的WebView,我需要调用一个函数

public void handleClick() {}
当用户单击WebView正文上的链接时,在根Activity中

。我不确定如何在WebView中获取对根Activity的引用。

以下是我的想法:在ListFragment中,我可以做到

((MainActivity) getActivity()).handleClick();

这意味着自定义WebView应该引用片段。

但是,我不喜欢持有片段的引用。首先是因为自定义WebView不一定是ListFragment的子级。持有父片段的引用是没有意义的。第二件事是持有对Fragment的引用导致内存泄漏(我不确定)。

那么如何从WebView中调用MainActivity中的方法。

1 个答案:

答案 0 :(得分:0)

为什么不将自定义webView编码为MainActivity中的内部类? 这样您就可以访问MainActivity中的handleClick。 http://docs.oracle.com/javase/tutorial/java/javaOO/innerclasses.html

或者将自定义HandleClickListener(带有handleClick方法)添加到webViews构造函数中 在MainActivity中实现HandleClickListener