我在项目中使用了HP Color LaserJet CP5520
和ViewPager
。包含Fragment
的活动有ViewPager
。 toolbar
具有一组图标,用于对以片段加载的数据执行某些操作。所以我的问题是如何找到活动中的图标点击片段内部。
我认为解决方案之一是创建自定义侦听器并将其传递给适配器。当监听器调用适配器再次调用片段内的另一个监听器时,我认为这不是一个好方法。
答案 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();
}
也许这不是最好的出路,但它确实有效。