获得以下错误:
"错误:(30,24)错误:不兼容的类型:TabMyMatesActivity无法转换为Fragment"。
我是Android开发的新手。最初代码工作正常。但现在它显示错误。任何人都可以帮我解决这个问题吗?
package com.example.mmp.myapplication;
import android.support.v4.app.Fragment;
import android.support.v4.app.FragmentManager;
import android.support.v4.app.FragmentStatePagerAdapter;
//Extending FragmentStatePagerAdapter
public class Pager extends FragmentStatePagerAdapter {
//integer to count number of tabs
int tabCount;
//Constructor to the class
public Pager(FragmentManager fm, int tabCount) {
super(fm);
//Initializing tab count
this.tabCount= tabCount;
}
//Overriding method getItem
@Override
public Fragment getItem(int position) {
//Returning the current tabs
switch (position) {
case 0:
TabMyMatesActivity tab1 = new TabMyMatesActivity();
return tab1;
case 1:
TabRequestsActivity tab2 = new TabRequestsActivity();
return tab2;
case 2:
TabSuggestionsActivity tab3 = new TabSuggestionsActivity();
return tab3;
case 3:
TabContactsActivity tab4 = new TabContactsActivity();
return tab4;
default:
return null;
}
}
//Overriden method getCount to get the number of tabs
@Override
public int getCount() {
return tabCount;
}
}
答案 0 :(得分:0)
Activity
不是Fragment
。这就是转换失败的原因(强制转换是将一种对象类型的引用转换为另一种类型时)。
我建议您将视图寻呼机中所需的“屏幕”从活动转换为片段。如果您仍希望在某些情况下将它们用作活动,则应创建单个活动,并且每个活动都应包含其中一个片段。这种方式将允许您重用碎片。
例如,您的代码应该看起来像这样:
@Override
public Fragment getItem(int position) {
//Returning the current tabs
switch (position) {
case 0:
return new TabMyMatesFragment();
...
我建议您在继续之前阅读fragment documentation,以便更好地理解这一点。