11

我正在使用一个扩展 Activity 的类来从 API 获取列表...

在一些基本相同的应用程序中,开发人员扩展了 ListActivity...

有哪些区别?

4

4 回答 4

11

ListActivityandroid.app.Activity如果您愿意,可以通过“免费”提供许多以列表为中心的功能来扩展通用功能。例如,列表条目单击的处理巧妙地包含在 ListActivity 中onListItemClick(...),而如果您使用的是普通的,android.app.Activity那么您需要使用OnClickListenerand 实现手动实现它。

总而言之,如果您的布局包含一个列表,那么请使用 ListActivity/ListFragment,因为它是一个有用的扩展。这并不意味着您的整个屏幕布局必须是列表,而是它的一部分必须托管一个带有标识符的 ListView 小部件,id="@android:id/list".

可以在此处找到有关该类的 Javadoc 以及如何使用它的有用示例。

于 2012-08-15T12:47:39.890 回答
3

ListActivities 是专门为与 ListViews 一起使用而设计的。它提供了几个辅助方法,例如onListItemClick(),这使得在其中使用 ListView 变得更加容易。

您可以在 ListActivity 中的 Activity 中执行您可以执行的任何操作。

如果您想更改 ListActivity 的布局,您仍然可以使用 Activity 中的 setContentView() 方法。只要在您的 View 中某处有一个名为 @android:id/list 的 ListView,ListActivity 仍然可以工作。

如果您仍然不确定,您可以随时查看ListActivity的源代码(链接到的 Jelly Bean 代码),看看它除了让您的生活更轻松之外并没有做太多事情。

于 2012-08-15T12:45:04.090 回答
2

ListActivity您同意合同的扩展开始,您的活动布局ListView中将有一个组件可用。

你的ListView组件应该有 id: @android:id/list

ListView 类为工作和操作 ListView 提供了方便的方法

于 2012-08-15T12:48:25.980 回答
0

此外,在常规中,Activity您可以使用下面的代码onCreate来隐藏应用程序标题栏。似乎您不能在ListActivity. (很难学到这一点)

requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_list);
// The rest of the content of onCreate
于 2012-11-08T10:55:25.467 回答