了解android类和方法

时间:2014-06-21 11:53:12

标签: java android

您能解释以下代码吗? 我确实理解JAVA中的类,方法。我无法在android中理解这一点。

  public class MainActivity extends Activity
  {
   protected void onCreate(Bundle savedInstanceState) 
    {
      super.onCreate(savedInstanceState);
      setContentView(R.layout.activity_main);

    }
  }

3 个答案:

答案 0 :(得分:1)

我会给你+1,以避免你的错误问题。它实际上是一个有效的。

你可能不了解它是Android用来创建最多的设计模式,如果它的组件。如果您具有Java背景,那么您熟悉实例化对象并更改其属性,如:

JFrame f = new JFrame()
f.setSize(new Dimension(50,50));
f.setVisible(true)
// etc

Android的设计模式略有不同。我称之为模板/继承,因为大部分时间你都会将android组件继承为子类,还要超越它的默认实现像这样:

@Override
public void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState);
}

您实际上是继承模板(在本例中为Activity),然后在模板中添加您自己的逻辑。

要了解此方法的作用,您需要阅读文档,以便了解它们的用途:http://developer.android.com/reference/android/app/Activity.html

因此,现在要回答您的实际问题,实例化课程Activity时会调用onCreate()方法。因此,在该代码中,您将覆盖此方法的功能,并将其设置为:

  1. 通过调用super.onCreate():它执行默认实现的操作
  2. 通过添加任何额外的代码,如setContentView():您可以向模板添加一些自定义代码

答案 1 :(得分:0)

在创建Activity时,它会将/res/layout/activity_main.xml中定义的布局设置为Activity显示的主要内容视图。当然,在此之前,调用超类中onCreate()的原始实现。

答案 2 :(得分:0)

在这种情况下,

MainActivity是一个扩展Activity的类,因此继承了此类的属性。

方法onCreate()Activity类中定义,您可以覆盖它,以便添加自己的代码,以便在创建Activity时执行。您调用super.OnCreate(savedInstanceState)来执行父类(Activity)中定义的onCreate()方法。

onCreate()类的可见性是“受保护的”,这意味着只有扩展Activity类的类才能看到它。其他类型是您之前可能遇到的“私人”和“公共”。 Private仅允许类本身访问方法或字段,public允许所有类访问方法或字段。

setContentView()是一种将xml布局文件设置为Activity的方法。