问题 扩展Activity和扩展ListActivity有什么区别?


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

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

哪些是差异?


1286
2017-08-15 12:37


起源



答案:


ListActivity 扩展了常见的功能 android.app.Activity 如果您愿意,可以免费提供一些以列表为中心的功能。例如,列表条目点击的处理整齐地包含在ListActivity中 onListItemClick(...) 而如果你使用平原 android.app.Activity 那么你需要手动实现这个 OnClickListener 和实施。

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

可以找到类中的Javadoc以及如何使用它的有用示例 这里


11
2017-08-15 12:47



哦。多个答案都说同样的话!把它交给失败者! :) - OceanLife
好的,根据性能更好地使用ListActivity? - BamsBamx
基本上它们是相同的,但ListActivity有一些有用的辅助方法,可能已经由Android团队有效地实现,因此他们正在尽最大努力。具有性能和列表的更相关的项目是管理光标而不是做愚蠢的事情,例如检索列表中的所有项目仅使用前10个等。 - OceanLife


答案:


ListActivity 扩展了常见的功能 android.app.Activity 如果您愿意,可以免费提供一些以列表为中心的功能。例如,列表条目点击的处理整齐地包含在ListActivity中 onListItemClick(...) 而如果你使用平原 android.app.Activity 那么你需要手动实现这个 OnClickListener 和实施。

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

可以找到类中的Javadoc以及如何使用它的有用示例 这里


11
2017-08-15 12:47



哦。多个答案都说同样的话!把它交给失败者! :) - OceanLife
好的,根据性能更好地使用ListActivity? - BamsBamx
基本上它们是相同的,但ListActivity有一些有用的辅助方法,可能已经由Android团队有效地实现,因此他们正在尽最大努力。具有性能和列表的更相关的项目是管理光标而不是做愚蠢的事情,例如检索列表中的所有项目仅使用前10个等。 - OceanLife


ListActivities专门设计用于ListViews。它提供了几种辅助方法,如 onListItemClick(),这使得更容易在其中使用ListView。

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

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

如果您仍然不确定,可以随时查看源代码 ListActivity (果冻豆代码链接到)并且看到它除了让你的生活更轻松之外没有那么多。


3
2017-08-15 12:45





延伸自 ListActivity 您同意在您的活动布局中的合同a ListView 组件将可用。

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

ListView类提供了用于处理和操作ListView的便捷方法


2
2017-08-15 12:48





另外,在常规 Activity 你可以使用下面的代码 onCreate 隐藏应用标题栏。看来你不能做同样的事了 ListActivity。 (从困难的方式学到了这一点)

requestWindowFeature(Window.FEATURE_NO_TITLE);
setContentView(R.layout.activity_list);
// The rest of the content of onCreate

0
2017-11-08 10:55