Viewpager и просмотры списков

Я пытаюсь использовать viewpager в своем приложении.

Я хочу создать 4 страницы просмотра со списками, и в каждом списке будут меняться только данные. Когда приложение запускается, каждая страница будет загружать собственные данные, но только первая будет отображаться в первый раз.

Но я не могу этого сделать. Мой фрагмент обновляет собственные данные при каждом изменении страницы, и все списки всегда имеют одни и те же данные. Пожалуйста, помогите мне в этом. Я спросил об этом в stackoverflow, но никто не ответил. Если есть источник об этом можешь прислать его ссылку?


person droidman    schedule 27.11.2011    source источник


Ответы (2)


Взгляните на этот проект https://github.com/Shereef/ViewPagerPlusExpandableList (импортируйте его в eclipse индиго или взгляните на код в Интернете), это был мой ответ на мой вопрос: Как реализовать ExpandableList в ViewPager на Android?

Должен быть очень полезен для вашего вопроса, если он не решает его полностью.

person Shereef Marzouk    schedule 28.11.2011

Вот одна реализация ViewPager с разными ListView как страницами.

MainActivity.java

public class MainActivity extends Activity {

    /** Called when the activity is first created. */

 private Context mContext;

    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        mContext = this;
        setContentView(R.layout.main);
        ListView listview1 = new ListView(mContext);
        ListView listview2 = new ListView(mContext);
        ListView listview3 = new ListView(mContext);

        Vector<View> pages = new Vector<View>();

        pages.add(listview1);
        pages.add(listview2);
        pages.add(listview3);

        ViewPager vp = (ViewPager) findViewById(R.id.viewpager);
        CustomPagerAdapter adapter = new CustomPagerAdapter(mContext,pages);
        vp.setAdapter(adapter);

        listview1.setAdapter(new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_1,new String[]{"A1","B1","C1","D1"}));
        listview2.setAdapter(new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_1,new String[]{"A2","B2","C2","D2"}));
        listview3.setAdapter(new ArrayAdapter<String>(mContext, android.R.layout.simple_list_item_1,new String[]{"A3","B3","C3","D3"}));

    }
}

CustomPagerAdapter.java

public class CustomPagerAdapter extends PagerAdapter {

 private Context mContext;
 private Vector<View> pages;

 public CustomPagerAdapter(Context context, Vector&lt;View&gt; pages) {
  this.mContext=context;
  this.pages=pages;
 }

 @Override
 public Object instantiateItem(ViewGroup container, int position) {
  View page = pages.get(position);
  container.addView(page);
  return page;
 }

 @Override
 public int getCount() {
  return pages.size();
 }

 @Override
 public boolean isViewFromObject(View view, Object object) {
  return view.equals(object);
 }

 @Override
 public void destroyItem(ViewGroup container, int position, Object object) {
  container.removeView((View) object);
 }

}

Подробнее здесь.

person oxygenpt    schedule 10.06.2012