如何将PreferenceFragment设置为选项卡的片段?

时间:2016-05-18 12:20:08

标签: android android-fragments android-preferences

我想使用preferenceFragment。我有一个标签式活动,并在一个片段中的标签式活动中,我想显示所有首选项。所以这个片段是v4的支持片段,即android.support.v4.app.Fragment;

如何在此设置preferenceFragment?

我试过这种方式:

   public class PreferencesFrag extends PreferenceFragment {



    @Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);

        addPreferencesFromResource(R.xml.preferences);

    }

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {
        // Inflate the layout for this fragment

        return inflater.inflate(R.layout.fragment_preferences, container, false);
    }

}

但是当我尝试调用片段时,这显示了寻呼机适配器中的错误:

适配器:

   public class SectionsPagerAdapter extends FragmentPagerAdapter {

    CharSequence Titles[];
    int NumbOfTabs;

    public SectionsPagerAdapter(FragmentManager fm, CharSequence mTitles[], int mNumbOfTabsumb) {
        super(fm);
        this.Titles = mTitles;
        this.NumbOfTabs = mNumbOfTabsumb;
    }

    @Override
    public Fragment getItem(int index) {

        switch (index) {
            case 0:
                return new BasicInformationFragment();
            case 1:
                return new PersonalDetailsFragment();
            case 2:
                return new PreferencesFrag();
            case 3:
                return new InviteFriendsFagment();
        }
        return null;
    }

    @Override
    public CharSequence getPageTitle(int position) {
        return Titles[position];
    }

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

编辑:

我曾经尝试过这种方式来替换片段,但它并没有取代它的标签剂量不能向前移动。

     PreferencesFrag fragment2 = new PreferencesFrag();
    FragmentManager fragmentManager = getFragmentManager();
    FragmentTransaction fragmentTransaction = fragmentManager.beginTransaction();
    fragmentTransaction.replace(R.id.fragment1, fragment2);
    fragmentTransaction.commit();

它显示错误,错误的第二种类型的参数需要v4.app.fragement找到fragment.PreferenceFragment。

显示首选项frag上的错误。 我怎样才能做到这一点? 谢谢..

1 个答案:

答案 0 :(得分:0)

nestedFragment中使用fragment加载虚拟TabAdapter并在该片段中将其替换为PreferenceFragment android