在ViewPager中轻扫几次时,Android ListView会清空

时间:2014-07-14 04:40:50

标签: android listview android-fragments android-listview

我有一个带有3个标签的ViewPager。

第一个标签将联系人加载到ListView中,后者扩展了ListFragment。

onCreate,我Asynchronously将联系人列表加载到ArrayList,然后在任务的后执行方法中,我将其加载到setListAdapter(new CustomContactListViewAdapter(getActivity(), contactList);的适配器中期待,但是当我轻轻浏览ViewPager几次,然后回到片段/页面时,列表是空的。

是否有任何已知的错误/解决方法?

我愿意发布我的代码,只是不知道哪部分会有用。

感谢任何帮助。

编辑:

添加一些代码。

public class MainActivity extends FragmentActivity {
  ViewPager mViewPager;
  TabAdapter mAdapter;

  @Override
  public void onCreate(Bundle state) {
    super.onCreate(state);

    mViewPager = (ViewPager) findViewById(R.id.pager);
    mAdapter = new TabAdapter(getSupportFragmentManager());

    mViewPager.setAdapter(mAdapter);
  }

  public class TabAdapter extends FragmentStatePagerAdapter {
    public TabAdapter(FragmentManager fm) { super(fm); }

    @Override
    public Fragment getItem(int index) {
        switch(index) {
          case 0:
            return ContactFragment();
          case 1:
            return SecondFragment();
          case 2:
            return ThirdFragment();
        }
        return null;
    }
  }
}

1 个答案:

答案 0 :(得分:0)

Per Pr38y

由于只有3个选项卡,您可以使用FragmentPagerAdapter,并调用pager.setOffscreenPageLimit(3);.这样它就会将片段保留在内存中,不会再创建它。