notifyDataSetChanged() 是 RecyclerView.Adapter 類(lèi)中的一個(gè)方法,用于通知 RecyclerView 數(shù)據(jù)集已更改,以便刷新視圖。
要使用 notifyDataSetChanged(),可以按照以下步驟進(jìn)行操作:
以下是一個(gè)基本示例:
public class MyAdapter extends RecyclerView.Adapter<MyAdapter.ViewHolder> {
private List<String> mData;
// 構(gòu)造方法
public MyAdapter(List<String> data) {
mData = data;
}
// 創(chuàng)建 ViewHolder
@Override
public ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
LayoutInflater inflater = LayoutInflater.from(parent.getContext());
View view = inflater.inflate(R.layout.item_layout, parent, false);
return new ViewHolder(view);
}
// 綁定 ViewHolder
@Override
public void onBindViewHolder(ViewHolder holder, int position) {
String item = mData.get(position);
holder.textView.setText(item);
}
// 獲取數(shù)據(jù)集大小
@Override
public int getItemCount() {
return mData.size();
}
// ViewHolder 類(lèi)
public static class ViewHolder extends RecyclerView.ViewHolder {
public TextView textView;
public ViewHolder(View itemView) {
super(itemView);
textView = itemView.findViewById(R.id.textView);
}
}
}
然后,在適當(dāng)?shù)奈恢谜{(diào)用 notifyDataSetChanged() 方法,例如在數(shù)據(jù)集發(fā)生更改的地方:
// 更新數(shù)據(jù)集
mData.add("New Item");
// 通知數(shù)據(jù)集已更改
myAdapter.notifyDataSetChanged();
這樣,RecyclerView 就會(huì)刷新并顯示最新的數(shù)據(jù)。