所以基本上我正在做的是使用以下代码和标签。我想要做的是有一个带有PreferenceFragment的标签。但是,它必须返回一个片段。
@Override
public Fragment getItem(int arg0) {
// TODO Auto-generated method stub
Fragment fragment = null;
if (arg0 == 0) {
fragment = new FragmentNormal();
}
if (arg0 == 1) {
fragment = new FragmentDifference();
}
if (arg0 == 2) {
fragment = new FragmentSetup();
}
return fragment;
}
如果argo0 == 2,我需要做两件事之一。首先 - 返回一个片段并使FragmentSetup扩展Fragment而不是PreferenceFragment(然后我不知道如何显示首选项)
OR
以某种方式返回PrefererenceFragment。
这是我的FragmentSetup的代码(基本上它只是加载带有textview的基本布局)
public FragmentSetup() {
// Required empty public constructor
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
// Inflate the layout for this fragment
return inflater.inflate(R.layout.fragment_setup, container,
false);
}
@Override
public void onCreate(Bundle savedInstanceState) {
// TODO Auto-generated method stub
super.onCreate(savedInstanceState);
// Load the preferences from an XML resource
}
}
答案 0 :(得分:0)
所以这是其他任何想知道的答案:
问题是dat getItem()想要你返回一个 android.support.v4.app.Fragment,但官方的PreferenceFragment 仅作为API 11+中android.app.Fragment的扩展而存在 包。话虽如此,有一个[非正式的后端] [1] 你可能想尝试一下。或者,您可以设计常规 片段来保持您的偏好,但这可能需要 更多的工作,或者将其分解为普通的PreferencyActivity。
backport - https://github.com/kolavar/android-support-v4-preferencefragment
感谢MH的回答。您所要做的就是下载backport并将其作为库资源添加到您的项目中,然后导入android.app事件的android.support.v4事件INSTEAD。
希望这有助于每个人都喜欢它帮助我:)。