您的位置:首页 > 其它

为什么启动Activity都是写的super.onCreate

2015-04-30 21:35 337 查看
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.hello_world_layout);

if (savedInstanceState == null) {
getSupportFragmentManager().beginTransaction()
.add(R.id.container, new PlaceholderFragment())
.commit();
}
}

如果写在你自己定义的一个OnCreate(),在这个函数里写调用OnCreate的话,必然要写super.OnCreate(),否则会递归调用,
其他地方写的话,super是调用父类的,this是调用你覆盖的,不过一般没有人会去手动调用这玩意吧,因此一般是调用super.OnCreate().

首先我们可以看到, HelloWorldActivity 是继承自 Activity 的。 Activity 是 Android 系统提
供的一个活动基类, 我们项目中所有的活动都必须要继承它才能拥有活动的特性。 然后可以
看到 HelloWorldActivity 中有两个方法, onCreateOptionsMenu()这个方法是用于创建菜单的,
我们可以先无视它, 主要看下 onCreate()方法。 onCreate()方法是一个活动被创建时必定要执
行的方法, 其中只有两行代码, 并且没有 Hello world!的字样。那么图 1.15 中显示的 Hello world!
是在哪里定义的呢?
其实 Android程序的设计讲究逻辑和视图分离, 因此是不推荐在活动中直接编写界面的,
更加通用的一种做法是, 在布局文件中编写界面, 然后在活动中引入进来。 你可以看到, 在
onCreate()方法的第二行调用了 setContentView()方法,就是这个方法给当前的活动引入了一
个 hello_world_layout 布局,那 Hello world!一定就是在这里定义的了!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: 
相关文章推荐