如何更新回收視圖適配器數(shù)據(jù)?試圖找出更新的問題所在RecyclerView是適配器。在我得到一份新的產(chǎn)品清單之后,我試著:更新ArrayList從碎片recyclerView,將新數(shù)據(jù)設(shè)置為適配器,然后調(diào)用adapter.notifyDataSetChanged()沒有用。像其他人一樣,創(chuàng)建一個新適配器,它對他們起了作用,但對我來說沒有變化:recyclerView.setAdapter(new RecyclerViewAdapter(newArrayList))創(chuàng)建一個方法Adapter它更新數(shù)據(jù)如下:public void updateData(ArrayList<ViewModel> viewModels) {
items.clear();
items.addAll(viewModels);
notifyDataSetChanged();}然后,每當(dāng)我想更新數(shù)據(jù)列表時,我都會調(diào)用這個方法;它沒有工作。若要檢查是否可以任何方式修改“回收視圖”,并且嘗試刪除至少一個項目: public void removeItem(int position) {
items.remove(position);
notifyItemRemoved(position);}一切都保持原樣。這是我的適配器:public class RecyclerViewAdapter extends RecyclerView.Adapter<RecyclerViewAdapter.ViewHolder> implements View.OnClickListener {
private ArrayList<ViewModel> items;
private OnItemClickListener onItemClickListener;
public RecyclerViewAdapter(ArrayList<ViewModel> items) {
this.items = items;
}
public void setOnItemClickListener(OnItemClickListener onItemClickListener) {
this.onItemClickListener = onItemClickListener;
}
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View v = LayoutInflater.from(parent.getContext()).inflate(R.layout.item_recycler, parent, false);
v.setOnClickListener(this);
return new ViewHolder(v);
}
public void updateData(ArrayList<ViewModel> viewModels) {
items.clear();
items.addAll(viewModels);
notifyDataSetChanged();
}
public void addItem(int position, ViewModel viewModel) {
items.add(position, viewModel);
notifyItemInserted(position);
}
public void removeItem(int position) {
items.remove(position);
notifyItemRemoved(position);
}因此,如何實際更新適配器數(shù)據(jù)以顯示新接收的項?
3 回答

翻翻過去那場雪
TA貢獻(xiàn)2065條經(jīng)驗 獲得超14個贊
list.remove(position);recycler.removeViewAt(position);mAdapter.notifyItemRemoved(position); mAdapter.notifyItemRangeChanged(position, list.size());
mAdapter.notifyDataSetChanged();

ABOUTYOU
TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊
recyclerView.setAdapter(new RecyclerViewAdapter(newList));recyclerView.invalidate();
recyclerView.invalidate()
- 3 回答
- 0 關(guān)注
- 453 瀏覽
添加回答
舉報
0/150
提交
取消