【问题标题】:Android getItem in FragmentPagerAdapter unable to return FragmentActivityFragmentPagerAdapter中的Android getItem无法返回FragmentActivity
【发布时间】:2014-04-04 05:04:50
【问题描述】:

我正在尝试从 FragmentPagerAdapter 中的 getItem(int index) 返回 FragmentActivity。我正在使用 FragmentActivity 在选项卡中实现列表视图。有什么解决办法吗?

@Override
public android.support.v4.app.Fragment getItem(int index) {

    switch (index) {
    case 0:
        // Top Rated fragment activity
        return new TopRatedFragment();
    case 1:
        // Games fragment activity
        return null; //new GamesFragment();
    case 2:
        // Movies fragment activity
        return null;//new MoviesFragment();
    }

    return null;
}

【问题讨论】:

    标签: android android-fragments


    【解决方案1】:

    根据关于开发人员的 getitem() mth 文档,无法恢复 FragmentActivity。

    abstract Fragment getItem(int position)
    Return the Fragment associated with a specified position.
    

    【讨论】:

      【解决方案2】:

      FragmentPagerAdapter 的 getItem() 方法不会也不能返回 FragmentActivity。 FragmentPagerAdapter在生活中的主要目的是管理ViewPager中的各个页面。要在 ViewPager 选项卡中显示 ListView,您可以扩展 FragmentPagerAdapter,如下所示:

      public class MyCustomAdapter extends FragmentPagerAdapter {
          private ArrayList<String> mPages;
      
          public MyCustomAdapter(FragmentManager fm, ArrayList<String> viewPagerPageItems) {
              super(fm);
              mPages = viewPagerPageItems;
      
          }
      
          @Override
          public int getCount() {
              return mPages.size();
          }
          @Override
          public Fragment getItem(int viewPagerTabPosition) {
              switch (viewPagerTabPosition) {
                 case 0:
                    // this fragment should extend ListFragment, where you could call 
                    // getListView() in the onCreate() or onActivityCreated() method.
                    // to inflate your list
                    return TopRatedListFragment.newInstance(mPages.get(position));
                 case 1:
      
                 case 2:
                     break;
          }
      
              return fragment;
          }
      }
      

      ListFragment 结构和 newInstance() 工厂方法遵循here 描述的方法。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-08-08
        • 2018-07-12
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多