我正在阅读一些Android开发教程,我注意到有些类扩展了Activity,而其他类扩展了ListActivity。
默认情况下,新创建的类是否隐式扩展Activity,还是需要显式扩展它?
此外,当一个类扩展ListActivity时,为什么不必扩展Activity?或者ListActivity是否已经扩展了Activity?
我读了几个类似的问题,但它并不是很清楚。
答案 0 :(得分:2)
Android是用Java编写的,与所有java类一样,每个类都继承自Object
类。
新创建的类是否隐式扩展了Activity,还是需要显式扩展它?
你需要扩展它。
ListActivity是否已经扩展了Activity?
是
您可以看到ListActivity here的类层次结构。
答案 1 :(得分:2)
按"默认",所有Android活动都会延长Activity
。
默认情况下,新创建的类是否隐式扩展Activity,还是需要显式扩展它?
如果尚未扩展Activity
并且您打算将其用作活动,则必须明确声明它应该扩展ListActivity
。请注意,有时候你不会这样做。例如,当你有一个对象或类似的类时,你就不需要再延长Activity了。
此外,当一个类扩展ListActivity时,为什么不必扩展Activity?或者ListActivity是否已经扩展了Activity?
AppCompatActivity
,-Activity
以及以Activity
结尾的任何其他类都是Activity
类的儿童。所以通过扩展,延伸到这些儿童"已经从父YourActivity extends ListActivity, Activity
课程延伸,您不再需要像Activity
那样做。我认为如果你这样做,Android Studio会给你一个错误。
ListAcivity
和User
之间的区别在于ListActivity将要求您覆盖多个方法,因为它期望在其内容中使用ListView。
答案 2 :(得分:1)
新创建的类不会扩展任何内容。 ListActivity是Activity的子类,因此Activity具有的所有功能,ListActivity都继承。在ListActivity的documentation中,您可以看到它是Activity的子类。
答案 3 :(得分:1)
在Android中,所有类都不会被Activity扩展。
只有呈现UI的屏幕才会被Activity扩展。因此,如果要创建UI屏幕,则必须使用Activity类显式扩展它并覆盖回调方法。
ListActivity是Activity的子类,仅当你的布局中只有一个ListView时才使用它。它有一些特定的listview相关方法。
同样,如果你想创建一个片段,你的类将扩展Fragment Class并覆盖它的方法。类似于Service,BroadcastReceiver等。