片段中的 ListView 与 ListFragment

ListView in Fragment vs ListFragment

我正在尝试使用 ViewPager 在我拥有的几个片段之间实现一个滑动系统。我有 2 个片段和 1 个列表片段。我将如何使用这两种类型的片段填充 viewpager?或者在片段中实现 ListView 会更容易,所以我有 3 个片段?

对不起,我不够清楚。我有 3 个片段:2 个 classes 扩展 'Fragment' 而第三个扩展 'ListFragment'。在我的 ViewPagerActivity 中,当我将片段添加到列表时:

public class PageViewActivity extends FragmentActivity {
MyPageAdapter pageAdapter;
@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    List<Fragment> fragments = getFragments();

    pageAdapter = new MyPageAdapter(getSupportFragmentManager(), fragments);

    ViewPager pager = (ViewPager)findViewById(R.id.viewpager);
    pager.setAdapter(pageAdapter);

}

private List<Fragment> getFragments(){
    List<Fragment> fList = new ArrayList<Fragment>();

    fList.add(MainActivity.newInstance());
    //fList.add(MainActivity.newInstance("Fragment 1"));
    //fList.add(MyFragment.newInstance("Fragment 2"));
    //fList.add(MyFragment.newInstance("Fragment 3"));

    return fList;
}

}

我在以下行收到错误:

fList.add(MainActivity.newInstance());

哪个是我的 ListFragment class(我知道 MainActivity 会抛出它,但它是我的 ListFragment class)。我的列表片段 class:

public class MainActivity extends ListFragment {

private List<ListViewItem> mItems;

public static MainActivity newInstance()
{
    MainActivity f = new MainActivity();
    Bundle bdl = new Bundle(1);
    f.setArguments(bdl);
    return f;
}

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    //setContentView(R.layout.activity_main);
    mItems = new ArrayList<ListViewItem>();
    Resources resources = getResources();
    setListAdapter(new ListViewAdapter(getActivity(), mItems));

}


@Override
public void onViewCreated(View view, Bundle savedInstanceState) {
    super.onViewCreated(view, savedInstanceState);
    // remove the dividers from the ListView of the ListFragment
    getListView().setDivider(null);
}

}

基本上,它给我一个错误,因为我传入了 ListFragment 的 newInstance,但 List 类型是 Fragments。我不认为应该有问题,因为 ListFragment 是 Fragment.

的子class

错误:无法将列表中的添加(android.support.v4.app.Fragment)应用于/MainActivity

这就是为什么我不确定是否应该使用片段+列表视图来克服这个错误。

ViewPager 实际上并不关心片段的类型,即使是寻呼机适配器也不关心片段是否扩展 FragmentListFragment 当然会。

也许您的片段来自支持库,但 ViewPager 需要标准片段