我可以使用兼容包 v4 创建 Fragment ListActivity 吗?

Posted

技术标签:

【中文标题】我可以使用兼容包 v4 创建 Fragment ListActivity 吗?【英文标题】:Can I create Fragment ListActivity with compatibility package v4? 【发布时间】:2012-06-11 08:36:12 【问题描述】:

我一直在尝试完成专为 android 3.0+ 设计的教程“使用片段”

为了完成我正在使用兼容包 v4(因为我的 API 是 7)。但是我被困在名单上。我找不到直接的答案。

我收到了 ClassNotFoundException。我从 FragmentActivity 继承了片段类,但是我的 ListActivity 呢?没有 FragmentListActivity 这样的东西,我认为它一直在崩溃。

还是根本不可能?

【问题讨论】:

【参考方案1】:

不,不存在。愚蠢的支持库。

该解决方案易于创建,但维护起来很繁琐。只需将native ListActivity class 复制到您的项目中,将其重命名为“FragmentListActivity”,并让它扩展FragmentActivity 而不是Activity。不需要其他调整,复制很容易。如果您不确定,您可以在我的代码中peak,但最好始终派生出最新的。

我会说GridActivity 也是如此。

【讨论】:

我们应该如何处理com.android.internal.R 引用? Brian,那是 ListActivity 类的吗?我没有遇到任何。希望他们不会在 4.2 中阻止这个? 嗯,他们三个。到目前为止,我想出了一个对我有用的解决方案。请参阅:gist.github.com/4201753 btw:upvote 你去 :) 那么它们是否可以解析为 android.R?可能是,不记得了。我也应该分享我的代码,这里是:bazaar.launchpad.net/~pjv/collectionista/ics-main/view/head:/… 我将它们替换为 android.R.* 除了一个:android.R.layout.list_content 对我不起作用,因此我将其提取为摘要 getSupportLayoutResourceId()。只要我打电话给setContentView(getSupportLayoutResourceId())【参考方案2】:

看这个问题: What to do about ListActivity/MapActivity when converting to Fragments using the compatibility library?

有一个ListFragment

【讨论】:

【参考方案3】:

是的,您可以创建与 viewpager 包 v4 兼容的 Fragment ListActivity

这里是example

另一个example

【讨论】:

这些是 ViewPager 教程 但在视图寻呼机中,我使用了片段活动,这将对您有所帮助,谢谢

以上是关于我可以使用兼容包 v4 创建 Fragment ListActivity 吗?的主要内容,如果未能解决你的问题,请参考以下文章

Fragment使用具体解释

为啥此错误显示“不兼容的类型”。 “必需:android.support.v4.app.Fragment”?

Fragment用app包还是v4包解析

Fragment启动过程,从getFragmentManager开始

搞清android.support.v4.app.Fragment和android.app.Fragment区别

搞清android.support.v4.app.Fragment和android.app.Fragment区别