我有一个由ViewPager组成的活动。
ViewPager由多个片段组成。
每个片段都包含一个带有项目的recyclerView。
现在如何更新recyclerView?
例如。视图寻呼机在0位置并显示“片段1”。 单击按钮后,我将一个项目添加到适配器并调用notifyItemInserted()。
问题是将项目添加到“片段2”的recylerView中,而不是片段1。
ViewPager适配器:
private class PagerAdapter extends FragmentStatePagerAdapter {
PagerAdapter(FragmentManager fm) {
super(fm);
}
@Override
public Fragment getItem(int pos) {
Fragment fragment = new MyFragment();
Bundle args = new Bundle();
args.putInt("listID", listID);
fragment.setArguments(args);
return fragment;
}
@Override
public int getCount() {
return lists.size();
}
@Override
public CharSequence getPageTitle(int position) {
return lists.get(position).getTitle();
}
}
MyFragment:
public class MainFragment extends Fragment {
ArrayList<String> data;
@Override
public View onCreateView(@NonNull LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
sp = PreferenceManager.getDefaultSharedPreferences(getActivity());
res = getResources();
// Inflate a view
View fragmentView = inflater.inflate(R.layout.fragment_main, container, false);
setHasOptionsMenu(true); // to allow this fragment to use action bar
initialize(fragmentView);
populateRecyclerView();
// Button click listenmer
fab.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
// Add item to recyclerView
data.add("Banana");
mAdapter.notifyItemInserted(mAdapter.getItemCount());
}
});
}
private void populateRecyclerView() {
data = new ArrayList();
data.add("Apple");
data.add("Mango");
// Setup adapter
mAdapter = new MainListAdapter(getActivity(), MainFragment.this, new ArrayList());
// Set adapter and populate recyclerView
recyclerView.setAdapter(mAdapter);
mAdapter.addAll(data);
}
}