Android 如何将偏好片段实现为现有片段?
我试图将一个已经设计好的preferenceFragment(MainSetting fragment)加载到一个现有的片段(setting fragment)中,我使用以下命令加载片段: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.
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。他正在维护碎片
应该扩展碎片。就这些。