Ich habe Probleme mit der Implementierung meines benutzerdefinierten PagerAdapter und verwenden es mit einem ViewPager. Dieses Beispiel PagerAdapter hat 10 Elemente, jedes Element ist eine Schaltfläche mit seinem Index als Text. Wenn ich mein Programm starte, sehe ich eine Schaltfläche mit dem Text '1' anstelle von '0'. Und wenn ich zu anderen Objekten wische, bekomme ich nur leere Ansichten. Wenn ich rückwärts wische, sehe ich manchmal eine Taste mit einer Nummer, aber sie verschwindet (vielleicht zerstört sie und ich entferne sie aus dem Container), und manchmal sehe ich eine Taste mit einer Nummer, aber die Nummer ändert sich nach dem Streichen (denke ich Ich erstelle eine neue Schaltfläche und füge sie dem Container hinzu, und aus bestimmten Gründen zeigt der viewpager diese neue Schaltfläche an.Richtiges Implementieren von PagerAdapter in Android
Wie kann ich diese Implementierung reparieren? Ich habe keinen Unterschied in Beispielen gesehen.
Meine PagerAdapter Implementierung:
public class MyPagerAdapter extends PagerAdapter {
@Override
public int getCount() {
return 10;
}
@Override
public boolean isViewFromObject(View view, Object o) {
return o.getClass()==view.getClass();
}
@Override
public Object instantiateItem(ViewGroup container, int position) {
Button button = new Button(container.getContext());
ViewGroup.LayoutParams params = new ActionBar.LayoutParams(-1,-1);
button.setLayoutParams(params);
button.setText(String.valueOf(position));
container.addView(button);
return button;
}
@Override
public void destroyItem(ViewGroup container, int position, Object object) {
container.removeView((Button)object);
}
}
Und meine Aktivität:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
ViewPager pager = (ViewPager) findViewById(R.id.pager);
pager.setAdapter(new MyPagerAdapter());
}
}
Ersetzen 'o.getClass() == view.getClass()' mit 'o == view' in der' isViewFromObject() 'Methode. – corsair992