试图找出更新RecyclerView适配器的问题.
在我获得新的产品列表后,我尝试:
更新创建ArrayList的片段recyclerView,将新数据设置为适配器,然后调用adapter.notifyDataSetChanged(); 那没起效.
像其他人一样创建一个新的适配器,它适用于他们,但对我没有任何改变: recyclerView.setAdapter(new RecyclerViewAdapter(newArrayList))
创建一个Adapter更新数据的方法,如下所示:
public void updateData(ArrayList<ViewModel> viewModels) {
items.clear();
items.addAll(viewModels);
notifyDataSetChanged();
}
Run Code Online (Sandbox Code Playgroud)
然后每当我想更新数据列表时,我都会调用此方法; 那没起效.
要检查我是否可以以任何方式修改recyclerView,并且我尝试删除至少一个项目:
public void removeItem(int position) {
items.remove(position);
notifyItemRemoved(position);
}
Run Code Online (Sandbox Code Playgroud)
一切都保持原样.
这是我的适配器:
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 …Run Code Online (Sandbox Code Playgroud)