gpt4 book ai didi

Android:support.v4.app.Fragment -> Fragment classcastexception 的解决方法?

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:44:41 24 4
gpt4 key购买 nike

我正在尝试将 support.v4.app.Fragment 添加到 PreferenceActivity header ,如下所示:

<header
android:fragment="com.example.SupportFragmentSubClass"
android:title="Selecting this should show the accompanying fragment" >
</header>

这会抛出一个 ClassCastException,大概是因为 PreferenceActivity 需要一个 android.app.Fragment 的子类,而不是 support.v4.app.Fragment

我的用例是这样的:
我有非标准 fragment ,我想在 <3.0 和 >3.0 设备上用作首选项。对于 >=3.0,我需要一个 android.app.Fragment 子类,以便它可以嵌入到平板设备上首选项 Activity 的“详细信息 Pane ”中。对于 <3.0,我需要一个 v4.support.app.Fragment 子类,这样我就可以在其中放入一个 ActivityFragment

是否有一种变通方法可以让我在这种情况下使用兼容性 fragment ?

最佳答案

PreferenceFragment 不在 Android 支持包中,您不能以这种方式在 PreferenceActivity 中使用 Android 支持包 fragment 类。此外,您的 header 无论如何都无法在 Android 2.x 上运行,因为 Android 2.x 中的 PreferenceActivity 不知道 fragment 。

原则上,您可以从源代码中派生 PreferenceActivity 来创建一个确实使用 Fragment 的 Android 支持版本的。

或者,组织您的首选项以在 Android 3.0+ 上使用 fragment 并避免在 Android 2.x 上使用它们。 Here is a sample project我在这里展示了一种方法。

关于Android:support.v4.app.Fragment -> Fragment classcastexception 的解决方法?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9054056/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com