对onCreate()有疑问吗?

时间:2018-10-26 15:43:49

标签: android

package com.example.samsung.myapplication

import android.support.v7.app.AppCompatActivity
import android.os.Bundle

    class MainActivity : AppCompatActivity() {

        override fun onCreate(savedInstanceState: Bundle?) {
            super.onCreate(savedInstanceState)  
            setContentView(R.layout.activity_main)     
        }

    }

根据开发人员文档,当我重写Activity类的回调函数时,必须通过超类实现进行调用。

这是我的两个问题:

  1. 在初始化Activity之后可以回调超类方法吗? 你能告诉我原因吗? 例如)      setContentView(....)      ....      view.adapter = ...(只猜上面有几个代码)       super.onCreate(...)

  2. 超类中onCreate的主要功能是什么?

2 个答案:

答案 0 :(得分:1)

  

在初始化Activity之后可以回调超类方法吗?你能告诉我原因吗?例如)setContentView(....).... view.adapter = ...(只是上面有几个代码)super.onCreate(...)

否,因为在调用super.onCreate()之前大多数对Android API的调用都会失败,并会发生异常,因为mCalled尚未设置为true(请参阅Activity source code作为参考)

  

超类中onCreate的主要功能是什么?

要了解onCreate()的功能,您应该了解Activity lifecycle及其在其中的作用。

答案 1 :(得分:0)

onCreate是在调用活动时被调用的方法。在此方法中,您可以定义要加载的布局(例如),并初始化例如视图。总而言之,此方法会创建一个视图

在编写view.adapter时,您调用对 view 实例的引用。在大多数情况下,您会分段调用view以例如设置布局或再次初始化视图。 请注意,在“活动”中,我们将覆盖onCreate,在“片段”中,我们调用onCreateView,然后返回View

作为超类,我们是指我们在编写时覆盖的类,并且如果您想在大多数情况下创建活动,则必须扩展AppCompatActivity()(在Kotlin中,括号是在声明活动名称后添加冒号来扩展的,例如{{ 1}})

我不知道这是否是您问题的正确答案,因为我根本听不懂。希望对您有帮助。如果您对超类等有任何疑问,可以通过easilly Google对其进行查询,在大多数情况下,您将获得easilly的答案。