第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機(jī)立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何更新回收視圖適配器數(shù)據(jù)?

如何更新回收視圖適配器數(shù)據(jù)?

海綿寶寶撒 2019-07-05 10:18:51
如何更新回收視圖適配器數(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個贊

我使用的是回收視圖,刪除和更新都很好。

1)刪除:從回收視圖中刪除項目有4個步驟

list.remove(position);recycler.removeViewAt(position);mAdapter.notifyItemRemoved(position);                 
mAdapter.notifyItemRangeChanged(position, list.size());

這些密碼對我有用。

2)更新數(shù)據(jù):我唯一需要做的就是

mAdapter.notifyDataSetChanged();

所有這些都必須在actvity/片段代碼中完成,而不是在ReccyclerView Adapter代碼中。


查看完整回答
反對 回復(fù) 2019-07-05
?
ABOUTYOU

TA貢獻(xiàn)1812條經(jīng)驗 獲得超5個贊

這就是對我有用的東西:

recyclerView.setAdapter(new RecyclerViewAdapter(newList));recyclerView.invalidate();

在創(chuàng)建了一個包含更新列表的新適配器(在我的例子中,它是一個轉(zhuǎn)換為ArrayList的數(shù)據(jù)庫)并將其設(shè)置為適配器之后,我嘗試了recyclerView.invalidate()而且成功了。


查看完整回答
反對 回復(fù) 2019-07-05
  • 3 回答
  • 0 關(guān)注
  • 453 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號