将OnclickListener从活动传递到ViewPager中的片段

时间:2016-01-26 07:18:56

标签: android android-viewpager fragment

我在项目中使用了HP Color LaserJet CP5520ViewPager。包含Fragment的活动有ViewPagertoolbar具有一组图标,用于对以片段加载的数据执行某些操作。所以我的问题是如何找到活动中的图标点击片段内部。 我认为解决方案之一是创建自定义侦听器并将其传递给适配器。当监听器调用适配器再次调用片段内的另一个监听器时,我认为这不是一个好方法。

2 个答案:

答案 0 :(得分:1)

在适配器中维护适配器的修复缓存大小的哈希映射(默认情况下为3)。添加或删除片段时,请继续添加和删除片段的实例。

在activity中的click方法中,使用hashmap获取当前片段并通过调用方法执行任务。

如果您需要此

的代码实现,请告诉我

答案 1 :(得分:0)

((MyActivity) getActivity()).myOnClickMethod();

这也有效。所以你不需要添加任何听众。

你也可以这样做:

public class MyActivity extends Activity implements FragmentClickedListener{
}

和片段gose:((FragmentClickedListener) getActivity()).myOnClickMethod();

在这种情况下FragmentClickedListener如下所示:

public interface FragmentClickedListener{
void myOnClickMethod();
}

也许这不是最好的出路,但它确实有效。