I'm still trying to get my head around recyclerview. I have an arraylist, that I use to initialize a recycler view with.
How can I add new items to the recycler view post setting an adapter and layoutmanager?
private void initData() { mItems = new ArrayList<String>(); for (int i = 0; i < ITEMS_COUNT; i++) { mItems.add("Item " + (i + 1)); } } private void initRecyclerView() { mRecentRecyclerView = (RecyclerView) findViewById(R.id.recentrecyclerView); mRecentRecyclerView.setHasFixedSize(true); mRecentLayoutManager = new LinearLayoutManager(this); mRecentRecyclerView.setLayoutManager(mRecentLayoutManager); mAdapter = new RecyclerView.Adapter<CustomViewHolder>() { @Override public CustomViewHolder onCreateViewHolder(ViewGroup viewGroup, int i) { View view = LayoutInflater.from(viewGroup.getContext()).inflate(R.layout.notice_snippet , viewGroup, false); return new CustomViewHolder(view); } @Override public void onBindViewHolder(CustomViewHolder viewHolder, int i) { viewHolder.noticeSubject.setText(mItems.get(i)); } @Override public int getItemCount() { return mItems.size(); } }; mRecentRecyclerView.setAdapter(mAdapter); private class CustomViewHolder extends RecyclerView.ViewHolder { private TextView noticeSubject; public CustomViewHolder(View itemView) { super(itemView); noticeSubject = (TextView) itemView.findViewById(R.id.notice_subject); } }
So basically after I initdata()
and initRecyclerView()
, how do i add a new item to the RecyclerView??
A ViewHolder describes an item view and metadata about its place within the RecyclerView. RecyclerView. Adapter implementations should subclass ViewHolder and add fields for caching potentially expensive View.
First add your item to mItems
and then use:
mAdapter.notifyItemInserted(mItems.size() - 1);
this method is better than using:
mAdapter.notifyDataSetChanged();
in performance.
simply add to your data structure ( mItems ) , and then notify your adapter about dataset change
private void addItem(String item) { mItems.add(item); mAdapter.notifyDataSetChanged(); } addItem("New Item");
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With