আমি notifyDataSetChanged () ব্যবহার করে একটি পুনর্ব্যবহারের আইটেমগুলি আপডেট করার চেষ্টা করছি।
এটি রিসাইক্যভিউ অ্যাডাপ্টারে আমার অনবিন্দ ভিউহোল্ডার () পদ্ধতি।
@Override
public void onBindViewHolder(ViewHolder viewHolder, int position) {
//checkbox view listener
viewHolder.getCheckbox().setOnCheckedChangeListener(new CompoundButton.OnCheckedChangeListener() {
@Override
public void onCheckedChanged(CompoundButton buttonView, boolean isChecked) {
//update list items
notifyDataSetChanged();
}
});
}
আমি যা করতে চাই তা হল তালিকার আইটেমগুলি আপডেট করা, আমি একটি চেকবাক্স চেক করার পরে। যদিও আমি একটি অবৈধ ব্যতিক্রম পাই:"Cannot call this method while RecyclerView is computing a layout or scrolling"
java.lang.IllegalStateException: Cannot call this method while RecyclerView is computing a layout or scrolling
at android.support.v7.widget.RecyclerView.assertNotInLayoutOrScroll(RecyclerView.java:1462)
at android.support.v7.widget.RecyclerView$RecyclerViewDataObserver.onChanged(RecyclerView.java:2982)
at android.support.v7.widget.RecyclerView$AdapterDataObservable.notifyChanged(RecyclerView.java:7493)
at android.support.v7.widget.RecyclerView$Adapter.notifyDataSetChanged(RecyclerView.java:4338)
at com.app.myapp.screens.RecycleAdapter.onRowSelect(RecycleAdapter.java:111)
আমি notifIteChanged () একই ব্যতিক্রম ব্যবহার করেছি। অ্যাডাপ্টারকে আপডেট করার কোনও আপডেট গোপনীয় উপায় যা কিছু বদলেছে?