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