以编程方式向recyclerview添加一个新项目?
我仍然试图让我的头靠近recyclerview。 我有一个arraylist,我用来初始化回收站视图。
如何将新项目添加到回收站查看post中设置适配器和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); } }
所以基本上我initdata()
和initRecyclerView()
,我如何添加一个新的项目到RecyclerView?
首先将您的项目添加到mItems
,然后使用:
mAdapter.notifyItemInserted(mItems.size() - 1);
比使用更好:
mAdapter.notifyDataSetChanged();
在表演。
只需添加到您的数据结构(mItems),然后通知您的适配器数据集更改
private void addItem(String item) { mItems.add(item); mAdapter.notifyDataSetChanged(); } addItem("New Item");
如果您要将多个项目添加到列表中,请使用以下命令:
mAdapter.notifyItemRangeInserted(startPosition, itemcount);
这通知任何注册的观察者,从positionStart开始的当前反映的itemCount项目已经被新插入。 先前位于positionStart和之后的项目现在可以从positinStart + itemCount位置开始find
数据集中的现有项目仍被认为是最新的。
看看本教程使用RecyclerView是一个非常好的地方,开始了解回收视图及其所有function
this.runOnUiThread(new Runnable() { public void run() { mAdapter.notifyDataChanged() } });