【问题标题】:Fragment getItem (int arg0) return a preferenceFragmentFragment getItem (int arg0) 返回一个preferenceFragment
【发布时间】: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


【解决方案1】:

所以这就是其他任何想知道的人的答案:

问题是 dat getItem() 想要你返回一个 android.support.v4.app.Fragment,不过是官方的 PreferenceFragment 仅作为 android.app.Fragment 的扩展存在于 API 11+ 包裹。话虽如此,有一个 [非官方的反向移植][1] 你可能想试一试。或者,您可以设计一个常规的 片段来保存您的偏好,但这可能需要 再做一些工作,或将其分解为普通的旧 PreferencyActivity。

反向移植 - https://github.com/kolavar/android-support-v4-preferencefragment

感谢 MH 的回答。您所要做的就是下载 backport 并将其作为库资源添加到您的项目中,然后导入 android.support.v4 事物而不是 android.app 事物。

希望这对每个喜欢它的人都有帮助:)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2018-11-13
    • 1970-01-01
    • 2021-03-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-10-31
    • 2012-06-21
    相关资源
    最近更新 更多