我有MenuActivity,它有RecyclerView和ViewPager。這個ViewPager有3個頁面,它們使用三個不同的片段。 FragmentOne,FragmentTwo,FragmentThree,所有這些碎片都使用RecyclerView數據。 我想使用三種不同的ArrayList需要在RecyclerView適配器中設置,這取決於Fragment用戶正在查看的內容。 一個解決方案是將RecyclerView放入所有三個片段中,並在Fragment中獲取更新數據。我只想知道是否可以根據調用的Fragment來在MenuActivity中設置適配器數據。在Android的單個RecyclerView中設置不同的適配器
@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等 請建議。 謝謝 Deepak