205

में अंतर और OnCreate(), onCreateView() और onActivityCreated (का उपयोग करता है) में क्या अंतर हैं onCreate(), onCreateView(), और टुकड़े में onActivityCreated() और क्या वे एक के लिए इस्तेमाल किया जाएगा?टुकड़े

+0

भी देखें: http://stackoverflow.com/questions/27227906/where-is-the-diferent-between-oncreate-and-oncreateview –

+0

@BradLarson मुझे समझ नहीं आता क्यों यह बंद किया गया था । यह अपेक्षाकृत लोकप्रिय प्रश्न साबित हुआ है और आपकी टिप्पणी में दिए गए लिंक से अलग है। यह प्रश्न तीन अलग-अलग तरीकों के बीच अंतर और एक दूसरे से तुलना करने के तरीके के बारे में पूछ रहा है लेकिन आपके द्वारा लिखे गए प्रश्न में केवल दो विधियों का उल्लेख किया गया है। –

+0

@BradLarson मेला पर्याप्त और अच्छी तरह से देखा। अब जबकि मुझे समझ है, क्या मैं एक ऐसा उत्तर नहीं लिख सकता जो अतिरिक्त तरीकों के लिए लिंक का संदर्भ देकर तीन विधियों की तुलना करता है? –

उत्तर

278

OnCreate():

एक Fragmentहै Activity के बाद कहा जाता है में की onAttachFragment() लेकिन वह Fragment से पहले की onCreateView()onCreate() विधि।
इस विधि में, आप चर निर्दिष्ट कर सकते हैं, Intent एक्स्ट्रा, और कुछ और प्राप्त करें जिसमें व्यू पदानुक्रम (यानी गैर-ग्राफिकल प्रारंभिकरण) शामिल नहीं है। ऐसा इसलिए है क्योंकि Activity के onCreate() समाप्त होने पर इस विधि को कॉल किया जा सकता है, और इसलिए यहां दृश्य पदानुक्रम तक पहुंचने का प्रयास करने से क्रैश हो सकता है।

onCreateView():

onCreate() के बाद कहा जाता है (Fragment में), Fragment के onCreateView() कहा जाता है। आप अपने View चर और असाइन कर सकते हैं कोई ग्राफिकल प्रारंभिकता। आपको इस विधि से View वापस करने की उम्मीद है, और यह मुख्य यूआई व्यू है, लेकिन यदि आपका Fragment किसी भी लेआउट या ग्राफिक्स का उपयोग नहीं करता है, तो आप null वापस कर सकते हैं (यदि आप ओवरराइड नहीं करते हैं तो डिफ़ॉल्ट रूप से होता है)।

onActivityCreated():

नाम राज्यों के रूप में, इस के बाद Activity के onCreate() पूरा कर लिया है कहा जाता है। इसे onCreateView() के बाद बुलाया जाता है, और मुख्य रूप से अंतिम प्रारंभिकरणों के लिए उपयोग किया जाता है (उदाहरण के लिए, यूआई तत्वों को संशोधित करना)।


सारांश में ...
... वे सभी Fragment में कहा जाता है लेकिन अलग अलग समय पर कहा जाता है।
onCreate() को गैर-ग्राफिकल प्रारंभिकरण करने के लिए पहले कहा जाता है। इसके बाद, आप onCreateView() में उपयोग करने के लिए इच्छित View वेरिएबल असाइन और घोषित कर सकते हैं। इसके बाद, onActivityCreated() का उपयोग किसी भी अंतिम प्रारंभिक कार्य करने के लिए करें जो आप सब कुछ पूरा करने के बाद करना चाहते हैं।


आप आधिकारिक Android दस्तावेज़ को देखना चाहते हैं, तो यह यहां पाया जा सकता है:
- onCreate()
- onCreateView()
- onActivityCreated()

वहाँ भी कुछ थोड़ा अलग है, लेकिन स्टैक ओवरफ़्लो पर कम विकसित प्रश्न/उत्तर यहां:

+4

मैंने सोचा कि मैं ऑन क्रिएट() पर गैर ग्राफिकल प्रारंभिक क्रियाओं को लागू करूंगा ताकि स्क्रीन घुमाए जाने पर उन्हें दोबारा नहीं बुलाया जा सके। यह पता चला है कि मुझे fragment.setRetainInstance (true) को कॉल करना है अन्यथा क्रिएट() और ऑनक्रेट व्यू() दोनों को स्क्रीन घुमाए जाने पर फिर से कॉल किया जाता है। –

+0

ऑनक्रेट व्यू() में, दृश्य पदानुक्रम तक पहुंचने के लिए सुरक्षित है? – Cody

+0

@ कोडी मुझे विश्वास है - दृश्य पदानुक्रम तक पहुंच 'onCreateView' का सटीक उद्देश्य है। –

37

एक संक्षिप्त, सचित्र जवाब की तलाश में किसी को भी के लिए:

enter image description here https://hanaskuliah.wordpress.com/2015/12/07/android-5-development-part-6-fragment/


और,

enter image description here

+1

पहला चित्र सहायक है लेकिन _ भगवान, फोंट! _ – TylerJames

+1

सहमत हैं। इस तरह की चीजों के लिए कॉमिक सैन्स आवश्यक है –

संबंधित मुद्दे