2012-11-24 20 views
6

जब भी उपयोगकर्ता को एक टुकड़ा प्रदर्शित किया जाता है तो मुझे कुछ कोड निष्पादित करने की आवश्यकता होती है।एंड्रॉइड फ्रैगमेंट्स: लाइफसाइकिल विधि * हमेशा * जब खंड प्रदर्शित होता है तो कहा जाता है?

एपीआई के माध्यम से देखकर निकटतम हुक विधि मैं देख सकता हूं कि यह रेज़्यूम है। हालांकि, मेरे कोड के माध्यम से डीबगिंग से ऐसा लगता है कि ऑनस्यूम नहीं है जब उपयोगकर्ता पहले प्रदर्शित खंड पर वापस जाने के लिए बैक-बटन का चयन करता है।

बस व्यवहार मैं देख रहा हूँ स्पष्ट करने के लिए:

मैं एक 'जनक' गतिविधि है जो एक ActionBar में टैब कॉन्फ़िगर करता है ... और 2 टुकड़े F1 और F2।

उपयोगकर्ता एक टैब का चयन करता है और F1 गतिविधि में लोड होता है। बटन दबाए जाने पर, उपयोगकर्ता एफ 2 पर नेविगेट कर सकता है। यह एक अलग टैब नहीं है ... F2 लेआउट में बदल दिया गया है।

लॉग बयान जोड़ा जा रहा है, मैं देख सकता है जो उपयोगकर्ता द्वारा F2 पर बैक बटन का चयन करता है, निम्न होता ....

1) onPause() F2 पर कहा जाता है। 2) एफ 1 एफ 1 पर onResume() गतिविधि में लोड किया जाता है ... लेकिन

बुलाया नहीं है इस समय लॉग में कोई त्रुटि नहीं।

कोई विचार जो मैं यहां गलत कर रहा हूं?

अग्रिम धन्यवाद,

नील।

+0

आपको हमेशा अपना प्रासंगिक कोड पोस्ट करना चाहिए ताकि हम देख सकें कि क्या हो रहा है। क्या आप प्रत्येक टुकड़े को पीछे की ढेर में जोड़ते हैं? – Sam

+0

धन्यवाद सैम। मेरे प्रश्न को संपादित करते समय और कोड जोड़ते समय, मैंने देखा कि मेरी त्रुटि मेरे टुकड़े स्विचिंग-कोड में थी। मैंने एक जवाब समझाया है। चीयर्स। – Neil

उत्तर

9

ठीक देखें, ऐसा लगता है कि यह एक पायलट-त्रुटि थी। एक गतिविधि में टुकड़े के बीच स्विच करने मेरे मूल कोड था ....

public void switchFragment(Fragment newFragment, String tag) { 
    getSupportFragmentManager() 
      .beginTransaction() 
      .add(android.R.id.content, newFragment) 
      .addToBackStack(tag) 
      .commit(); 
} 

कॉल() जोड़ने के लिए उपरोक्त कोड में वास्तव में बदलने के लिए किया जाना चाहिए()। ऐसा लगता है कि बैक-बटन व्यवहार के साथ गतिविधि गड़बड़ी में टुकड़े को प्रतिस्थापित नहीं किया जाता है।

ईमानदार होना चाहिए और मानना ​​है कि मैं 100% निश्चित नहीं हूं कि यह क्यों होता है। हालांकि, परिवर्तन करने के बाद, बैक-बटन कहलाए जाने पर, गंतव्य खंड पर ऑनर्यूम() विधि को कॉल किया जाता है।

+4

पर वापस जा रहे हैं ताकि आप मेरा जवाब घटा सकें क्योंकि आप खराब हो गए हैं? कितना अच्छा ... –

+20

मेरे पास डाउनवोट करने की प्रतिष्ठा नहीं है। मिसपेलिंग 'आरटीएफएम' के कॉमेडी मूल्य के लिए, मैं वास्तव में आपको उखाड़ फेंक दूंगा। – Neil

+6

अच्छी तरह से बच्चों को खेलते हैं। – Sandy

1

यह थोड़ा अजीब सवाल है, क्योंकि किसी भी मौजूदा वर्ग विधि को कॉल करने की गारंटी दी जाती है जब यह घटना विधि के लिए बुलाया जाने वाला ईवेंट होता है और सभी शर्तों को पूरा किया जाता है। वह भी चुनें जो उस कार्य को फिट करे जो आप सबसे अच्छा करना चाहते हैं। डॉक्स here

enter image description here

+6

यह एक अजीब जवाब है, जैसे कि आपके स्मार्ट में स्मार्ट होने के लिए, आप स्पष्ट रूप से मेरे प्रश्न को कभी नहीं पढ़ते हैं। और मैंने 'आरटीएफएम' किया (मुझे लगता है कि आप यही मतलब है) और 'मैनुअल' ने मेरी मदद नहीं की। जैसा कि मैंने समझाया है कि कोई जीवन-चक्र विधि नहीं है, जिसे मैं देख सकता हूं कि जब एक टुकड़ा वापस किया जाता है-बैक बटन की प्रेस के माध्यम से कहा जाता है। – Neil

+1

मेरे उत्तर में शामिल आरेख का कौन सा तत्व अस्पष्ट है? –

+6

सभी आरेख स्पष्ट हैं, क्योंकि यह एंड्रॉइड जावाडोक का हिस्सा है - हालांकि, यह मेरे प्रश्न का उत्तर नहीं देता है। – Neil

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