Android 如何将偏好片段实现为现有片段?

Android 如何将偏好片段实现为现有片段?,android,fragment,preferencefragment,Android,Fragment,Preferencefragment,我试图将一个已经设计好的preferenceFragment(MainSetting fragment)加载到一个现有的片段(setting fragment)中,我使用以下命令加载片段: getFragmentManager().beginTransaction().replace(android.R.id.content,new MainSettingsFragment ()).commit(); 但守则规定: Wrong 2nd argument type. Found: 'com.

我试图将一个已经设计好的preferenceFragment(MainSetting fragment)加载到一个现有的片段(setting fragment)中,我使用以下命令加载片段:

getFragmentManager().beginTransaction().replace(android.R.id.content,new MainSettingsFragment ()).commit();  
但守则规定:

Wrong 2nd argument type. Found: 'com.example.***.myapplication.SettingFragment.MainSettingsFragment', required: 'android.support.v4.app.Fragment'   
包装或进口有什么问题吗?还是我的加载方法完全错误?这是我的主要代码:

import android.os.Bundle;
import android.preference.PreferenceFragment;
import android.support.annotation.Nullable;
import android.support.v4.app.Fragment;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;


/**
 * A simple {@link Fragment} subclass.
 */
public class SettingFragment extends Fragment {


public SettingFragment() {
    // Required empty public constructor
}

@Override
public void onCreate(@Nullable Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    getFragmentManager().beginTransaction().replace(android.R.id.content,new 
MainSettingsFragment ()).commit();
 }

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

}
更新

<?xml version="1.0" encoding="utf-8"?>
我通过下载android.support.v4 jar解决了我的问题,通过组合这两个片段看起来不错,但当我运行我的应用程序时,它显示了以下另一个问题

    android.view.InflateException: Binary XML file line #16: Binary XML file line #16: Error inflating class selector
Caused by: android.view.InflateException: Binary XML file line #16: Error inflating class selector
Caused by: java.lang.ClassNotFoundException: Didn't find class "android.view.selector" on path: DexPathList  
我多次检查我的代码,我仍然不知道为什么会出现这个错误,这是否意味着我应该在我的preferenceFragment xml文件中添加一个选择器

最后,这里我列出了preferenceFragment布局文件

preferences.xml

<?xml version="1.0" encoding="utf-8"?>



我认为您应该扩展import
android.support.v4.preference.PreferenceFragment
而不是
import android.preference.PreferenceFragment

MainSettingsFragment必须扩展android.support.v4.app.Fragment,而不是SettingFragmentNo。他正在维护碎片
应该扩展碎片。就这些。