Ich erstelle einen benutzerdefinierten Adapter, wo ich zwei Ansichtshalter verwende, wenn die Liste an Position 0 ist, wird das Halterungsobjekt an den ersten Ansichtshalter gegossen, andernfalls an die zweite. das Problem ist, wenn ich dieses erste Ansicht Halter Objekt außerhalb onBindViewHolder verwendet es wirft Nullzeiger Ausnahme. Hier ist mein CodeRecyclerView.ViewHolder geht null außerhalb onBindViewHolder Methode
@Override
public void onBindViewHolder(RecyclerView.ViewHolder holder, final int position) {
if (position == 0) {
firstholder = (FirstHolder) holder;
} else {
secondholder = (SecondHolder) holder;
}
}
public void runnable(final int size) {
handler = new Handler();
runnable = new Runnable() {
@Override
public void run() {
if (firstholder.ViewPager.getCurrentItem() == size - 1) {
firstholder.ViewPager.setCurrentItem(0);
} else {
firstholder.ViewPager.setCurrentItem(firstholder.ViewPager.getCurrentItem() + 1, true); }
handler.removeCallbacks(Runnable);
handler.postDelayed(Runnable, 1000);
}
}
};
}
seine werfen Ausnahme, wenn in Runnable aufgerufen. Beachten Sie, dass: Beide viewholder Objekte global sind
zu verwenden, können Sie den Stack-Trace schreiben? Welche Zeile wirft NullPointer? Stellen Sie auch den Code für den Rest des Adapters, speziell 'onCreateViewHolder' und' getItemViewType' Methoden – Zain
in run-Methode, wo ich Viewpager durch firstholder – User
aufrufen "Runnable = neue Runnable()"? , sollten Sie eine Variable haben "Runnable Läufe = neue Runnable()" –