2015-10-25 90 views
1

我想为我的应用程序构建一个偏好选项卡,但由于我有其他选项卡从常规片段扩展,因此我有一个不兼容的类型错误,因为PreferenceFragment不能转换为片段。偏好片段选项卡适配器

这里是我的标签片段适配器:

public class PagerAdapter extends FragmentStatePagerAdapter { 
int mNumOfTabs; 

public PagerAdapter(FragmentManager fm, int NumOfTabs) { 
    super(fm); 
    this.mNumOfTabs = NumOfTabs; 
} 

@Override 
public Fragment getItem(int position) { 

    switch (position) { 
     case 0: 
      Tab1Discover tab1 = new Tab1Discover(); 
      return tab1; 
     case 1: 
      Tab2Planning tab2 = new Tab2Planning(); 
      return tab2; 
     case 2: 
      Tab3Favorites tab3 = new Tab3Favorites(); 
      return tab3; 
     case 3: 
      Tab4Messages tab4 = new Tab4Messages(); 
      return tab4; 
     case 4 : 
      /*Tab5Profile tab5 = new Tab5Profile(); 
      return tab5;*/ 
      return new PreferenceFragment() { 
       @Override 
       public void onCreate(Bundle savedInstanceState) { 
        super.onCreate(savedInstanceState); 
        addPreferencesFromResource(R.xml.settings); 
       } 
      }; 
     default: 
      return null; 
    } 
} 

@Override 
public int getCount() { 
    return mNumOfTabs; 
} 
} 

回答

0

有不兼容的类型,问题是 - 从support.v4.app.Fragment继承您的片段,但PreferenceFragment从android.app.Fragment继承。

有两种方法,你可以对付它:

  1. 继承所有来自android.app.Fragment
  2. 重新实现PreferenceFragment片段通过采取它的源代码here例如从支持继承它。 v4.app.Fragment