У меня проблемы с реализацией моего собственного PagerAdapter и его использованием с ViewPager. Этот пример PagerAdapter имеет 10 элементов, каждый элемент представляет собой кнопку с индексом в виде текста. Когда я запускаю свою программу, я вижу кнопку с текстом «1» вместо «0». И когда я прокручиваю другие элементы, я получаю только пустые представления. При свайпе назад иногда я вижу кнопку с каким-то номером, но она исчезает (может уничтожает и я ее удаляю из контейнера), а иногда вижу кнопку с номером, но номер меняется после свайпа (думаю Я создаю новую кнопку и добавляю ее в контейнер, и по каким-то причинам вьюпейджер показывает эту новую кнопку).
Как я могу исправить эту реализацию? Разницы в примерах не увидел.
Моя реализация 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);
}
}
И моя активность:
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());
}
}
o.getClass()==view.getClass()
наo==view
в методеisViewFromObject()
. - person corsair992   schedule 06.02.2015