【发布时间】:2012-08-11 18:04:36
【问题描述】:
我正在使用一个扩展 Activity 的类来从 API 获取列表...
在一些基本相同的应用中,开发者扩展了 ListActivity...
有什么区别?
【问题讨论】:
标签: android android-activity listactivity extend
我正在使用一个扩展 Activity 的类来从 API 获取列表...
在一些基本相同的应用中,开发者扩展了 ListActivity...
有什么区别?
【问题讨论】:
标签: android android-activity listactivity extend
另外,在常规的Activity 中,您可以使用onCreate 中的以下代码来隐藏应用标题栏。看来你不能在ListActivity 中做同样的事情。 (学到了很多东西)
requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_list);
// The rest of the content of onCreate
【讨论】:
从ListActivity 扩展,您同意在您的活动布局中使用ListView 组件的合同。
您的 ListView 组件的 id 应为:@android:id/list
ListView 类为工作和操作 ListView 提供了方便的方法
【讨论】:
ListActivity 扩展了常见的android.app.Activity 的功能,如果您愿意,可以“免费”提供一些以列表为中心的功能。例如,列表条目点击的处理巧妙地包含在 ListActivity 的 onListItemClick(...) 中,而如果您使用的是普通的 android.app.Activity,那么您需要使用 OnClickListener 和实现手动实现这一点。
总的来说,如果您的布局包含一个列表,那么请使用 ListActivity/ListFragment,因为它是一个有用的扩展。这并不意味着您的整个屏幕布局必须是列表,而是它的一部分必须托管一个带有标识符 id="@android:id/list" 的 ListView 小部件。
可以在here找到该类的Javadoc以及如何使用它的有用示例。
【讨论】:
ListActivities 是专门为与 ListView 一起使用而设计的。它提供了几个帮助方法,例如onListItemClick(),这使得在其中使用 ListView 变得更加容易。
您可以在 ListActivity 的 Activity 中做任何可以做的事情。
如果您想更改 ListActivity 的布局,您仍然可以使用 Activity 中的 setContentView() 方法。只要您的 View 中某处有一个名为 @android:id/list 的 ListView,ListActivity 仍然可以工作。
如果您仍然不确定,您可以随时查看 ListActivity 的源代码(链接到的 Jelly Bean 代码),看看它除了让您的生活更轻松之外并没有做太多其他事情。
【讨论】: