каква е разликата между методите на жизнения цикъл onCreate() и onCreateView() във Fragment?

Не знам кога да използвам onCreate() или onCreateView().

Използвал съм onCreate() и onCreateView() методи на жизнения цикъл. Мисля, че onCreate() за активност и onCreateView() за фрагмент. Но аз не съм сигурен. Мога ли да използвам метода onCreate() LifeCycle във Fragment? Надявам се някой да може да ми помогне!


person Cabezas    schedule 01.12.2014    source източник
comment
проверете документите за разработчици на Android и може би ще намерите решение   -  person Sarthak Mittal    schedule 01.12.2014
comment
чели ли сте фрагменти жизнен цикъл?   -  person Elltz    schedule 01.12.2014
comment
Google - google.co.in/   -  person Vinayak Bevinakatti    schedule 01.12.2014


Отговори (3)


onCreate се извиква при първоначално създаване на фрагмента. Вие правите своите неграфични инициализации тук. Завършва дори преди оформлението да се раздуе и фрагментът да се види.

onCreateView се извиква, за да увеличи оформлението на фрагмента, т.е. тук обикновено се извършва графична инициализация. Винаги се извиква понякога след метода onCreate.

person M D    schedule 01.12.2014
comment
какво имаш предвид понякога? - person Bouh; 14.09.2020
comment
Мисля, че имаше предвид известно време след метода oncreate - person Dhruv Sangvikar; 16.03.2021

Обяснен жизнен цикъл на активността - http://developer.android.com/reference/android/app/Activity.html

Обяснен жизнен цикъл на фрагмента - http://developer.android.com/guide/components/fragments.html#Creating

Подробна диаграма на жизнения цикъл - https://github.com/xxv/android-lifecycle

person fada21    schedule 01.12.2014
comment
Простите връзки не отговарят на въпроси. Например в жизнения цикъл не се споменава createView. - person Alberto M; 09.12.2020

От документи:

onCreate

Извиква се, когато дейността започва.

Това е мястото, където трябва да отиде повечето инициализации: извикване на setContentView(int) за раздуване на потребителския интерфейс на дейността, използване на findViewById(int) за програмно взаимодействие с джаджи в потребителския интерфейс, извикване на managedQuery(android.net.Uri, String[], String, String[ ], String), за да извлечете курсори за показани данни и др.

Можете да извикате finish() от тази функция, в който случай onDestroy() ще бъде извикана незабавно, без да се изпълнява останалата част от жизнения цикъл на дейността (onStart(), onResume(), onPause() и т.н.

Производните класове трябва да извикат изпълнението на този метод от суперкласа. Ако не го направят, ще бъде хвърлено изключение.

Връзка към документацията на onCreate

onCreateView

Извиква се, за да накара фрагментът да инстанцира своя изглед на потребителския интерфейс. Това не е задължително и неграфичните фрагменти могат да върнат нула (което е изпълнението по подразбиране). Това ще бъде извикано между onCreate(Bundle) и onActivityCreated(Bundle).

Ако върнете изглед от тук, по-късно ще бъдете извикани в onDestroyView(), когато изгледът се освобождава.

Връзка към документацията на onCreateView

person Don Chakkappan    schedule 01.12.2014
comment
Това не дава отговор на въпроса, тъй като описаното onCreate() е за дейност. Причината е просто защото въпросът пита за Fragment. Да не говорим, че Fragment няма setContentView() метод. - person Wei Chan; 27.02.2019