जब मैं स्क्रॉल करते समय अपनी सूची को पुनर्चक्रण में अद्यतन करता हूं, तो मेरा ऐप निम्नलिखित स्टैकट्रेस के साथ क्रैश हो जाता है:
एडेप्टर वर्ग
public class NotesAdapter extends RecyclerView.Adapter<NotesAdapter.MyViewHolder> {
private Context context;
public static List<Note> notesList;
public class MyViewHolder extends RecyclerView.ViewHolder {
public TextView note;
public MyViewHolder(View view) {
super(view);
note = view.findViewById(R.id.note);
}
}
public NotesAdapter(Context context, List<Note> notesList) {
this.context = context;
this.notesList = notesList;
}
@Override
public MyViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
View itemView = LayoutInflater.from(parent.getContext())
.inflate(R.layout.note_list_row, parent, false);
return new MyViewHolder(itemView);
}
@Override
public void onBindViewHolder(final MyViewHolder holder, int position) {
final Note note = notesList.get(position);
holder.note.setText(note.getNote());
}
@Override
public int getItemCount() {
return notesList.size() ;
}
}
जब मैं अपने क्रैश को अपडेट करते हुए पुनर्चक्रण को स्क्रॉल करता हूं, तो मेरे पास अब मेरे पास मौजूद सभी कोड हैं, कृपया इस दुर्घटना में मेरी मदद करें ... जब भी मेरे फोन पर अधिसूचना आती है तो मैं अपनी सूची अपडेट करता हूं, इसलिए पूरी सूची अपडेट हो जाती है और यदि आप स्क्रॉल कर रहे हैं और सूची अपडेट हो जाती है ऐप क्रैश
java.lang.IndexOutOfBoundsException: Inconsistency detected. Invalid view holder adapter positionViewHolder{86b8f8b position=1 id=-1, oldPos=-1, pLpos:-1 no parent} androidx.recyclerview.widget.RecyclerView{d8043c1 VFED..... ........ 0,0-1080,1369 #7f0a00ff app:id/recyclerView}, adapter:com.uzeegar.unseen.nolastseen.hiddenchat.Adapter.NotesAdapter@c87d766, layout:com.uzeegar.unseen.nolastseen.hiddenchat.Utilz.WrapContentLinearLayoutManager@85bfaa7, context:androidx.multidex.MultiDexApplication@5fed17c
at androidx.recyclerview.widget.RecyclerView$Recycler.validateViewHolderForOffsetPosition(RecyclerView.java:5715)
at androidx.recyclerview.widget.RecyclerView$Recycler.tryGetViewHolderForPositionByDeadline(RecyclerView.java:5898)
at androidx.recyclerview.widget.GapWorker.prefetchPositionWithDeadline(GapWorker.java:286)
at androidx.recyclerview.widget.GapWorker.flushTaskWithDeadline(GapWorker.java:343)
at androidx.recyclerview.widget.GapWorker.flushTasksWithDeadline(GapWorker.java:359)
at androidx.recyclerview.widget.GapWorker.prefetch(GapWorker.java:366)
at androidx.recyclerview.widget.GapWorker.run(GapWorker.java:397)
at android.os.Handler.handleCallback(Handler.java:873)
at android.os.Handler.dispatchMessage(Handler.java:99)
at android.os.Looper.loop(Looper.java:214)
at android.app.ActivityThread.main(ActivityThread.java:7050)
at java.lang.reflect.Method.invoke(Native Method)
at com.android.internal.os.RuntimeInit$MethodAndArgsCaller.run(RuntimeInit.java:494)
at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:965)
1 उत्तर
मैं उसी लेआउट में मूल विज्ञापन के लिए उपयोग किए गए फ्रेम लेआउट को जोड़कर अपनी समस्या को हल करता हूं और दृश्यता को समाप्त कर देता हूं ... और विज्ञापन को केवल उस स्थिति पर दृश्यमान दिखाता हूं जिसे मैं विज्ञापन दिखाना चाहता हूं ...
संबंधित सवाल
नए सवाल
java
जावा एक उच्च स्तरीय प्रोग्रामिंग भाषा है। इस टैग का उपयोग तब करें जब आपको भाषा का उपयोग करने या समझने में समस्या हो। इस टैग का उपयोग शायद ही कभी किया जाता है और इसका उपयोग अक्सर [वसंत], [वसंत-बूट], [जकार्ता-ई], [Android], [javafx], [हडूप], [श्रेणी] और [मावेन] के साथ किया जाता है।