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

前端之家收集整理的这篇文章主要介绍了Android:support.v4.app.Fragment – > Fragment classcastexception的解决方法?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我正在尝试将support.v4.app.Fragment添加到PreferenceActivity标头,如下所示:
<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.

我的用例是这样的:
我有非标准片段,我想在< 3.0和> 3.0设备上使用它作为首选项.对于> = 3.0,我需要一个android.app.Fragment子类,因此它可以嵌入到平板电脑设备上的首选项活动的“详细信息窗格”中.对于< 3.0,我需要一个v4.support.app.Fragment子类,所以我可以在其中引入一个ActivityFragment. 有没有一种解决方法可以让我在这种情况下使用兼容性片段?

解决方法

PreferenceFragment不在Android Support包中,您不能以这种方式在PreferenceActivity中使用Android Support包Fragment类.此外,您的标题无论如何都无法在Android 2.x上运行,因为Android 2.x中的PreferenceActivity不知道片段.

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

或者,组织您的首选项以在Android 3.0上使用片段并在Android 2.x上避免它们. Here is a sample project我在哪里演示了这样做的方法.

猜你在找的Android相关文章