【问题标题】: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 布局文件。

    【讨论】:

    • 这清楚了很多。感谢您抽出宝贵时间,泰勒 V!
    【解决方案2】:

    我相信你的意思是默认的 Activity 布局? 如果你不使用 setContentView 在 onCreate 中设置一个,我想你根本不会有一个。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2018-07-06
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-20
      相关资源
      最近更新 更多