【问题标题】:What is the default activity if you don't override onCreate?如果您不覆盖 onCreate,默认活动是什么?
【发布时间】:2018-07-13 22:08:54
【问题描述】:
我对 Android 和 Java(以及 OOP)都是新手,如果这太菜了,请原谅我。在浏览第一个应用程序的 Android 教程时,编写了以下代码:
@Override
protected void onCreate(Bundle savedInstanceState){...}
我已经读到@Override 正在覆盖默认的 onCreate 调用,如果您不覆盖,则无法指定要使用的活动。这一切都很好,但为了便于理解,如果在不覆盖 onCreate 的情况下 activity_main 不是,那么默认活动到底是什么?
【问题讨论】:
标签:
android
android-activity
default
oncreate
【解决方案1】:
我想你要问的是基类onCreate 方法做了什么,如果你不覆盖它会发生什么。您可以查看 Activity here 或 AppCompatActivity here 的源代码以查看基类中的内容。请注意,应用中的典型实现如下所示
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
// other custom setup code for your activity
}
第一次调用super.onCreate 仍然调用基类onCreate 方法(您要覆盖的方法),所以您没有替换基类,但添加特定于您正在创建的活动的自定义。对 super 的调用会执行许多您总是必须做的 Activity 设置事情。它不会将活动与任何布局文件相关联(由 setContentView 调用完成),因此如果不添加 setContentView 调用,它将不会显示 xml 文件中的任何内容。没有它会使用的 default xml 布局文件。
【解决方案2】:
我相信你的意思是默认的 Activity 布局?
如果你不使用 setContentView 在 onCreate 中设置一个,我想你根本不会有一个。