简单的问题:我的MainActivity在TabLayout中具有选项卡,在选项卡中具有一些片段。我可以像这样从片段中以编程方式选择所需的标签:
TabLayout tabs = getActivity().findViewById(R.id.tabs);
TabLayout.Tab tab = tabs.getTabAt(0);
tab.select();
但是当我想从片段之一中的RecyclerView适配器执行相同操作时,事情变得棘手。问题是“ getActivity”部分。我试图将FragmentActivity传递给适配器以使用它,如下所示:
TabLayout tabs = (TabLayout) fa.findViewById(R.id.tabs);
但是我受到NPE的打击。我在做什么错?
好吧,只需从片段中提取实例并从该实例获取活动即可解决:
TabLayout tabs = FragmentSets.getInstance().getActivity().findViewById(R.id.tabs);