【问题标题】:Fragment Within A Fragment or ListActivity Within A Fragment?片段内的片段或片段内的ListActivity?
【发布时间】:2013-05-28 23:33:19
【问题描述】:

我使用以下内容来选择要在我的活动中显示的片段......

    public class SectionsPagerAdapter extends FragmentPagerAdapter {

    public SectionsPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {

        Fragment fragment;
        switch (position) {
        case 0:
            fragment = new Fragment1();
            break;
        case 1:
            fragment = new Fragment2();
            break;
        case 2:
            fragment = new Fragment3();
            break;
        default:
            fragment = null;
            break;
        }
        return fragment;

    }

...一个空白的工作片段看起来像....

public class Fragment2 extends Fragment {

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View root = inflater.inflate(R.layout.fragment_dod, container, false);
// Do Stuff Here
        return root;
    }

    @Override public void onSaveInstanceState(Bundle outState) {
        super.onSaveInstanceState(outState);
        // Save some state!
      }
}

我的 SectionsPagerAdapter 类型不匹配错误如何:使用 ListFragment 时无法从 Fragment2 转换为 Fragment,如下所示.....

public class Fragment2 extends ListFragment {
  DemoAdapter adapter=null;

  @Override
  public void onActivityCreated(Bundle savedInstanceState) {
    super.onActivityCreated(savedInstanceState);

    setRetainInstance(true);

    if (adapter==null) {
      ArrayList<Integer> items=new ArrayList<Integer>();

      for (int i=0;i<25;i++) { items.add(i); }

      adapter=new DemoAdapter(getActivity(), items);
    }
    else {
      adapter.startProgressAnimation();
    }

    setListAdapter(adapter);
  }
}

我一直在寻找解决这个问题的方法。有人可以建议一种方法吗?如果可能的话,可以解释一下,以便我理解为什么并且可以在将来尝试避免它?

谢谢

【问题讨论】:

  • 我不明白...为什么你有一个名为Fragment2 的类扩展了Fragment,还有一个名为Fragment2 的类扩展了ListFragment
  • 我发现这个问题 (stackoverflow.com/questions/15321666/…) 似乎与我需要的很接近。如果是,我会回复。

标签: android android-fragments fragment listadapter


【解决方案1】:

我的问题的答案可以在这里找到 - Why can't I instantiate this Fragment on Android?

找出问题所在......我的 MainActivity.java 文件正在使用:

导入android.support.v4.app.Fragment;和我的 MainFragment.java 文件 正在使用:

导入android.app.Fragment;所以出现了不匹配。我正在使用 ICS 4.0 及更高版本作为我最低的 API 版本。更改所有内容以导入 v4 API 解决了我的问题

【讨论】:

    猜你喜欢
    • 2019-03-07
    • 2021-05-23
    • 2017-05-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-11
    相关资源
    最近更新 更多