【发布时间】:2013-11-22 00:31:19
【问题描述】:
所以基本上我正在做的是使用带有标签的以下代码。我想要做的是有一个带有 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 (然后我不知道如何显示首选项)
或
以某种方式返回一个 PreferenceFragment。
这是我的 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
}
}
【问题讨论】:
-
问题是
getItem()想要你返回一个android.support.v4.app.Fragment,但是官方的PreferenceFragment只作为android.app.Fragment的扩展存在于API 11+ 包中。话虽如此,您可能想尝试一下unofficial backport。或者,您可以设计一个常规片段来保存您的偏好,但这可能需要更多的工作,或者将其分解为一个普通的旧PreferencyActivity。
标签: android android-fragments tabs fragment