I have a series that used to be called listViews in my application, which are now RecyclerViews. I am curious as the most effective way to increase modularity and reduce the repetition of this section of my application.
For example, I have GroupMemberFragment and FriendFragment , which have almost identical RecyclerView.ViewHolders and RecyclerView.Adapters
What is the best way to reorganize to reduce code duplication, but still allow each respective list of items to be unique to their data and flexible enough to add additional data in the future?
GroupMemberFragment
public class GroupMemberFragment extends Fragment { RecyclerView mRecyclerView; ArrayList<Group> mGRoups; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.recycler_layout, container, false); mRecyclerView = (RecyclerView) view.findViewById(R.id.recycler_view_layout); mRecyclerView.setHasFixedSize(true); mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity()));
FriendFragment
public class FriendFragment extends Fragment { RecyclerView mRecyclerView; ArrayList<Friend> mContacts; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); } @Nullable @Override public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) { View view = inflater.inflate(R.layout.recycler_layout, container, false); mRecyclerView = (RecyclerView) view.findViewById(R.id.recycler_view_layout); mRecyclerView.setHasFixedSize(true); mRecyclerView.setLayoutManager(new LinearLayoutManager(getActivity())); mContacts = FriendProvider.getInstance(getActivity()).getFriends(); mRecyclerView.setAdapter(new ContactAdapter(mContacts)); return view; }
source share