片段内的片段或片段中的ListActivity?

时间:2013-05-28 23:33:19

标签: android android-fragments fragment listadapter

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

    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);
  }
}

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

由于

1 个答案:

答案 0 :(得分:0)

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

  

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

     

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

     

import android.app.Fragment;所以有一个不匹配。我正在使用ICS   4.0及更高版本是我最低的API版本。更改要导入到v4 API的所有内容解决了我的问题