【发布时间】:2016-11-23 08:48:34
【问题描述】:
我有具有 RecyclerView 和 ViewPager 的 MenuActivity。这个 ViewPager 有 3 个页面,它们使用三个不同的 Fragment。 FragmentOne、FragmentTwo、FragmentThree,所有这些 Fragment 都使用 RecyclerView 数据。 我想使用三个不同的 ArrayList 需要在 RecyclerView Adapter 中设置,这取决于 Fragment 用户正在查看什么。 一种解决方案是将 RecyclerView 放在所有三个 Fragment 中,并在 Fragment 中获取更新数据。我只是想知道是否可以根据调用的 Fragment 在 MenuActivity 中设置 Adapter 数据。
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
View rootView = inflater.inflate(R.layout.fragment_menu, container, false);
recyclerView = (RecyclerView) rootView.findViewById(R.id.recycler_view);
itemList = new ArrayList<>();
prepareMenuData();
vegadapter = new MenuItemAdapter(getContext(),vegItemList);
nonvegadapter = new MenuItemAdapter(getContext(),nonvegItemList);
dessertAdapter = new MenuItemAdapter(getContext(),dessertItemList);
recyclerView.setAdapter(vegadapter);
RecyclerView.LayoutManager layoutManager = new LinearLayoutManager(getContext());
recyclerView.setLayoutManager(layoutManager);
return rootView;
}
prepareMenuData();
for (MenuItem item:itemList)
{
if(item.getCategory().equals("VEG"))
{
vegItemList.add(item);
vegadapter.notifyDataSetChanged();
}
if(item.getCategory().equals("NONVEG"))
{
nonvegItemList.add(item);
nonvegadapter.notifyDataSetChanged();
}
if(item.getCategory().equals("DESSERTVEG"))
{
dessertItemList.add(item);
dessertAdapter.notifyDataSetChanged();
}
}
此代码不知道何时设置 vegadapter、nonvegadapter 等。 请建议。 谢谢 迪帕克
【问题讨论】:
标签: android android-fragments android-viewpager android-recyclerview