android - 如果您不覆盖 onCreate,默认活动是什么?
问题描述
我对 Android 和 Java(以及 OOP)都是新手,所以如果这是超级菜鸟,请原谅我。在浏览第一个应用程序的 Android 教程时,编写了以下代码:
@Override
protected void onCreate(Bundle savedInstanceState){...}
我已经读到 @Override 正在覆盖默认的 onCreate 调用,如果您不覆盖,则无法指定要使用的活动。这一切都很好,但是为了便于理解,如果在不覆盖 onCreate 的情况下 activity_main 不是,那么默认活动到底是什么?
解决方案
我想你要问的是基类onCreate
方法做了什么,如果你不覆盖它会发生什么。您可以在此处查看 Activity 的源代码,或在此处查看AppCompatActivity以查看基类中的内容。请注意,应用程序中的典型实现如下所示
@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
调用完成)相关联,因此如果不添加调用,它不会显示 xml 文件中的任何内容setContentView
。没有它会使用的默认xml 布局文件。
推荐阅读
- python - 允许调试生成的代码的最佳或正确方法是什么?
- json - Azure ARM 模板 - Key Vault 用户名和密码 ID 变量?
- reactjs - 降低 TSDX 包的导入成本
- firebase - 使用 Flutter 永久存储数据
- nullpointerexception - 截屏时出现空指针异常......建议任何解决方案
- python - CV2中的RGB到灰度转换
- assembly - 在 MIPS 中获取参数并返回 $v0 和 $v1
- highcharts - 有没有办法在 Highcharts 中为多条实时曲线关闭动画?
- .net - 使用 MatBlazor 的 Blazor 多个 NumericUpDownField 绑定
- vb.net - 在visual basic中为tic tac toe编码玩家名称