onCreateview()和getView()之间的区别是什么,我可以在Activity()中使用这些区别



我对onCreate()onCreateView()getView()的使用感到困惑。

1。我可以在activity类中使用所有这三个吗?

2。我是否应该强制使用不同的layouts

以下是从Google开发人员网站:

的描述o这些方法

oncreate()

活动开始时被调用。

这是大多数初始化应该去的地方:

  • 调用setContentView(int)夸大活动的UI,
  • 使用FindViewById(int)与UI中的小部件进行编程交互,
  • 调用a takanedquery(android.net.uri,string [],字符串,字符串,字符串[],字符串)检索光标以显示要显示的数据,等等。

oncreateview()

这不是活动的生命周期方法。这只是一种成员方法,将用于指定任务,如文档中所述。

中所述

标准实施 android.view.layoutinflater.factory.oncreateview在充气时使用 随着GetSystemService返回的LayoutInflater。这 实施无济于事,而是 pre android.os.build.version_codes.honeycomb应用程序。较新的应用程序应该 使用oncreateview(视图,字符串,上下文,属性网)。依靠电话 活动中的oncreateview()是不良编程。

如果您使用此方法用于Fragments,则

它将被要求使片段实例化其用户界面视图。

getView()

此方法仅适用于Fragments

它获取片段布局的根视图(由 如果提供。

参考:

https://developer.android.com/reference/android/App/fragment.html#getview()https://developer.android.com/reference/android/app/activity.html#oncreate(android.os.bundle)

首先请参考活动生命周期https://developer.android.com/reference/ardroid/android/app/activity.html,

oncreate()

首次创建活动时调用。在这里,您应该在这里进行所有正常的静态设置:创建视图,将数据绑定到列表等。此方法还为您提供一个包含活动先前冷冻状态的捆绑包(如果有的话)。始终随后是onstart()。

第二,请参阅片段生命周期https://www.tutorialspoint.com/android/android_fragments.htm

您感到困惑,因为onCreate()在活动和碎片中既正确又对!让我们探索.. onCreateview()

oncreate()片段中的方法是在片段的 onattachfragment()之后调用的,但是在该片段的 increateview()之前。在此方法中,您可以分配变量,获取意图额外功能,以及任何不涉及视图层次结构(即非塑性初始化)的其他内容。这是因为当活动的ongreate()未完成时,可以调用此方法,因此尝试访问视图层次结构可能会导致崩溃。

第三,请参阅适配器,http://www.edureka.co/blog/what-are-are-adapters-in-android/

getView()

1 :LayoutInflater取用您的布局XML文件,并从其内容中创建不同的视图。

2 :构建适配器是为了重用视图,当视图滚动以使其不再可见时,可以用于出现的新视图之一。此重复使用的视图是转换视图。如果这是无效的,则意味着没有回收的视图,我们必须创建一个新的视图,否则我们应该使用它来避免创建新的。

3 :提供父母,因此您可以将视图夸大到适当的布局参数中。

所有这些都可以用来有效地创建列表中出现的视图(或其他适配器的视图):

public View getView (int position, View convertView, ViewGroup parent){
    if( convertView == null ){
        //We must create a View:
        convertView = inflater.inflate(R.layout.my_list_item, parent, false);
    }
    //Here we can do changes to the convertView, such as set a text on a TextView 
    //or an image on an ImageView.
    return convertView;
}

您无法在活动中使用 oncreateview()> and getView()在您的活动中(如果您愿意,如果您愿意,可以在活动中创建自定义适配器在该课程中,您可以使用 getView())。

最新更新