2015-10-25 4 views
1

Я хочу создать вкладку предпочтений для своего приложения, но поскольку у меня есть другие вкладки, простирающиеся от обычного фрагмента, у меня есть ошибка несовместимых типов, так как PreferenceFragment не может быть преобразован в Fragment.Адаптер вкладки фрагмента предпочтений

Вот мой Tab Fragment адаптер:

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
Смежные вопросы