Android onCreate
方法似乎可以完成通常在构造函数中执行的所有操作。
我有一些代码以编程方式为布局添加了一些视图,并且使用onCreate
方法似乎有点无意义 - 我只是为了保持一致。
for (Contact contact : manager.getContacts()) {
GuiContact guiContact = new GuiContact(contact, this);
guiContact.onCreate();
// add them to the UI
guiContact.setLayoutParams(new ViewGroup.LayoutParams(
ViewGroup.LayoutParams.MATCH_PARENT,
ViewGroup.LayoutParams.WRAP_CONTENT
));
contactListLayout.addView(guiContact);
}
为什么这个功能在onCreate
而不是在构造函数中?
(如果功能在构造函数中,那么final
成员会有优势。)
答案 0 :(得分:4)
这是因为你永远不会自己实例化Activity
。系统为您完成。为了做到这一点,它需要一个没有任何参数的构造函数。因此,最好在onCreate()
中进行初始化。
此外,您在Activity
方法中设置onCreate()
布局,因此在构造函数中获取该布局的句柄将不起作用,并且您将无法动态地向其中添加视图