无法使PreferenceFragment工作(编译错误)

use*_*162 5 java android fragment android-preferences

在此输入图像描述

我在尝试编译项目时遇到错误:"FragmentTransaction类型中的方法add(int,Fragment)不适用于参数(int,FragmentPreferences)".据我所知,PreferenceFragment是一个片段?我正在为Android 4.0开发,但我必须使用android-support-v4库,因为我的项目还包括ViewPager.我在http://developer.android.com/guide/topics/ui/settings.html#Fragment中找到了这个例子:

// Display the fragment as the main content.
        getFragmentManager().beginTransaction()
                .replace(android.R.id.content, new SettingsFragment())
                .commit();
Run Code Online (Sandbox Code Playgroud)

但我无法让它发挥作用.

我的代码:

case R.id.menu_settings:
    FragmentPreferences prefs = new FragmentPreferences();
    FragmentTransaction ft = getSupportFragmentManager().beginTransaction();
    ft.add(android.R.id.content, prefs);
    ft.commit();
    break;
Run Code Online (Sandbox Code Playgroud)

FragmentPreferences:

public class FragmentPreferences extends PreferenceFragment {
    @Override
    public void onCreate(Bundle savedInstanceState){
        super.onCreate(savedInstanceState);
        addPreferencesFromResource(R.xml.preferences);
    }

}
Run Code Online (Sandbox Code Playgroud)

ian*_*ake 16

这是因为PreferenceFragment延伸android.app.Fragment,而不是android.support.v4.app.Fragmentandroid.support.v4.app.FragmentTransaction期待.

截至目前,PreferenceFragment支持库没有正式的后向支持.但是,您可以使用UnifiedPreferences等库来填补这一空白.