将GetItem(int)返回ListFragment在FragmentPagerAdapter中。

3

我正在开发一个由3个列表片段组成的Android应用程序。我使用 ViewPager 对象来让用户在片段之间滑动。我已经使用相同的代码与片段。但是,当我将其更改为使用列表片段时,我遇到了一个错误。

the return type is incompatible with FragmentPagerAdapter.getItem(int)

我已经卡在这里几个小时了,请帮忙...

我的碎片活动

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

    List<ListFragment> fragments = getFragments();

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

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

}

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

    fList.add(AllMsgFragment.newInstance("Fragment 1"));
    fList.add(ErrorMsgFragment.newInstance("Fragment 2"));
    fList.add(SuccessMsgFragment.newInstance("Fragment 3"));

    return fList;
}

以及我的FragmentPageAdapter

class MyPageAdapter extends FragmentPagerAdapter {
private List<ListFragment> fragments;

public MyPageAdapter(FragmentManager fm, List<ListFragment> fragments) {
    super(fm);
    this.fragments = fragments;
}
@Override
public Fragment getItem(int position) {//The return type is incompatible with FragmentPagerAdapter.getItem(int)
    return this.fragments.get(position);
}

@Override
public int getCount() {
    return this.fragments.size();
}

@Override
public CharSequence getPageTitle(int position) {
    return "Page #" + ( position + 1 );
}

谢谢您提前的帮助。


2
请确保您导入了正确的类“import android.support.v4.app.ListFragment;”,不要使用“import android.app.ListFragment;”或其他类。 - hieuxit
1个回答

6
最后,感谢 @hieuxit。更改中...
import android.app.ListFragment;

为了

import android.support.v4.app.ListFragment;

解决了我的问题...


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接