类型不匹配:无法从ListFragment转换为Fragment

时间:2015-04-15 17:26:09

标签: android android-fragments

我有一个TabsPagerAdapter课程,如下所示。 FirstFragment,SecondFragment和ThirdFragment类都扩展了Fragment,一切都很顺利。 然后我将SecondFragment更改为扩展ListFragment,现在我得到编译错误:
类型不匹配:无法从SecondFragment转换为Fragment

ListFragment延伸Fragment,所以在我看来。这应该不是问题 我该怎么办?

在SecondFragment中导入:

import android.app.ListFragment;

类别:

public class TabsPagerAdapter extends FragmentPagerAdapter {

    private Context mContext;

    public TabsPagerAdapter(FragmentManager fragmentManager, Context context) {
        super(fragmentManager);
        mContext = context;
    }

    @Override
    public Fragment getItem(int index) {

        Fragment returnFragment = null;

        switch (index) {
        case 0:
            returnFragment = new FirstFragment(mContext);
            break;
        case 1:
            returnFragment=  new SecondFragment(mContext);
            break;
        case 2:
            returnFragment = new ThirdFragment(mContext);
            break;
        }

        return returnFragment;
    }

    @Override
    public int getCount() {
        // get item count - equal to number of tabs
        return 3;
    }
}

1 个答案:

答案 0 :(得分:3)

问题通常是由于不同类别的导入不匹配。您可能在一个类中具有本机Fragment,而在另一个类中具有来自支持库的本地Fragment。修复导入,它将起作用。 检查进口。还要删除在getActivity()子类中带参数的构造函数。系统需要一个公共空构造函数(也就是默认构造函数)。如果您需要上下文,可以使用{{1}}