您能解释以下代码吗? 我确实理解JAVA中的类,方法。我无法在android中理解这一点。
public class MainActivity extends Activity
{
protected void onCreate(Bundle savedInstanceState)
{
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
}
答案 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 :(得分: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
的方法。