Mam problemy z implementacją mojego niestandardowego PagerAdaptera i używanie go z ViewPagerem. Ten przykładowy PagerAdapter ma 10 elementów, każdy element jest przyciskiem z indeksem jako tekstem. Po uruchomieniu programu widzę przycisk z tekstem "1" zamiast "0". A kiedy przesuniemy do innych elementów, otrzymuję tylko puste widoki. Kiedy przesuwać do tyłu czasami widzę przycisk z pewną liczbą, ale znika (może to jest zniszczenie i usuwam go z pojemnika), a czasami widzę przycisk z numerem, ale liczba zmienia się po przesunięciu (myślę Tworzę nowy Button i dodaję go do kontenera iz jakiegoś powodu viewpager pokazuje ten nowy przycisk).Prawidłowe wdrażanie PagerAdapter w Androidzie
Jak mogę naprawić tę implementację? Nie widziałem różnicy w przykładach.
Moja implementacja PagerAdapter:
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);
}
}
A mój aktywny:
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());
}
}
Wymień 'o.getClass() == view.getClass()' z 'o == view' w metodzie' isViewFromObject() '. – corsair992