以编程方式向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() } });