安卓 - Activity 和 ListActivity - 我的活动类应该继承哪一个?

30

我一直在学习Android开发,有一个普遍的问题:如果我有一个使用列表和其他视图的布局,应该使用Activity还是ListActivity作为我的活动类?

我知道ListActivity可能会使覆盖特定于列表的事件变得更容易,但是使用ListActivity与Activity相比是否有其他优势?如果将来我想将布局更改为GridView,更改类代码会更麻烦吗?

我只是对这方面的“最佳实践”感到好奇,以及其中的好处,所以任何答案都会有帮助 :)

巴拉

3个回答

43
我建议使用 ListActivity,因为它提供了许多快捷方法,使得编程更加简单易读。
例如,你可以使用 onListItemClick() 方法 来处理列表项的点击事件,而无需创建额外的监听器。
如果你需要改变 ListActivity 的布局,你仍然可以使用 Activity 中的 setContentView() 方法。只要在你的视图中有一个名为 @android:id/listListViewListActivity 就能正常工作。
如果你还不确定是否要使用 ListActivity,你可以看一下 ListActivity 的源代码,你会发现它并没有太多复杂的实现,只是让编程更加便利。

我在尝试重构一些代码时采用了这种方法,该代码使用相同的基础但同时包含Activity和ListActivity。在布局的公共部分放置了一个空的ListView,然后使用<include>和<merge>标签共享该公共部分。 - Artem Russakovskii
ListActivity存在一些错误,在某些使用情况下会显现出来。因此,ListActivity只能在非常基本的使用情况下有条件地使用。在这种情况下,使用Activity和ListView就足够简单了。 - Anderson

11

我建议使用Activity。除非你想对列表进行一些琐碎的操作并且知道它将是列表,否则没有使用ListActivity的理由。


这是否意味着使用ListActivity而非Activity没有任何优势,只是一种“快捷方式”?Google是否有一些期望的标准? - Bara
2
对我来说,优点就像Dave上面所说的那样,可以节省一些时间并使代码更加简洁。像Dave建议的那样,在文档或源代码中查看ListActivity,看看您是否需要这种便利。个人而言,我在大多数情况下使用activity。 - Alex Volovoy
2
我同意。ListActivity已经不够用了。它仍然可以处理一些琐碎的事情。 - Fabio Milheiro

0

你应该使用Activity而不是ListActivity,因为ListActivity代码不可重复使用,需要一遍又一遍地编写。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接