当我打电话notifyDataSetChanged()它不'吨打电话给我onBindViewHolder,我不知道为什么它这样做,我currely使用自定义布局和唐'知道如果有什么关系呢
有人有什么想法吗?这里的代码是我用来在我的适配器中调用datasetchange的代码的和平。
public void updateFriendsCheckinData(HashMap<Integer, List<LiveCheckin>> updatedCheckinMap){
this.friendCheckinMap = updatedCheckinMap;
notifyDataSetChanged();
}
答案 0 :(得分:0)
试试这个:
public void updateFriendsCheckinData(HashMap<Integer, List<LiveCheckin>> updatedCheckinMap) {
// here we are clearing existing data in the HashMap
friendCheckinMap.clear();
friendCheckinMap = updatedCheckinMap;
notifyDataSetChanged();
}
然后在你的getItemCount()方法中我们有:
@Override
public int getItemCount() {
// if you are using the data in the list retrieved from the hashmap, then here return the size of the list instead.
return friendCheckinMap.size();
}
希望这有帮助。
答案 1 :(得分:-1)
你必须在onClick事件而不是OnBindviewHolder中调用notifydatasetchanged。
如果您调用OnBindviewHolder,它可能会因为recyclerview填充视图而崩溃。
以下是samplecode
@Override
public void onRecyclerViewItemClick(@NonNull View view, @NonNull AndroidVersion calendarDTO, int position) {
Toast.makeText(getContext(),String.valueOf(position), Toast.LENGTH_SHORT).show();
adapter.notifyDataSetChanged();
}