मैं वास्तव में एक टुकड़े की आंतरिक स्थिति से उलझन में हूं। मेरे पास एक गतिविधि है जो एक बार में केवल एक टुकड़ा है और इसे बदल देती है, अगर कोई अन्य टुकड़ा दिखाया जाना चाहिए। डॉक्स onSaveInstanceState
से को केवल कहा जाता है यदि गतिविधि onSaveInstanceState
को कॉल किया जा रहा है (जिसे मेरे मामले में नहीं कहा जाता है)।Fragments से 'onViewStateRestored` कैसे काम करता है?
अगर मैं अपना टुकड़ा रोकता हूं, तो मैं अपने राज्य को सिंगलटन के अंदर ही स्टोर करूंगा (हाँ, मुझे पता है कि मैं सिंगलेटन से भी नफरत करता हूं, लेकिन ऐसा करने का मेरा विचार नहीं था)। इसलिए मुझे पूरे ViewHirarchy
को फिर से बनाना है, नए दृश्य बनाएं (कीवर्ड new
का उपयोग करके), अपने राज्य को पुनर्स्थापित करें और उन्हें onCreateView
पर वापस कर दें। मेरे पास इस दृश्य के अंदर एक चेकबॉक्स भी है जिसमें से मैं स्पष्ट रूप से अपने राज्य को संग्रहीत करना चाहता हूं।
हालांकि FragmentManager
"बुद्धिमान" बनना चाहता है और एक बंडल के साथ onViewStateRestored
कॉल मैं अपने आप को कभी नहीं बनाया है, और वर्ष CheckBox
के राज्य "पुनर्स्थापित" और मेरी नई चेकबॉक्स को यह लागू होता है। यह इतने सारे प्रश्न फेंकता है:
क्या मैं onViewStateRestored
से बंडल को नियंत्रित कर सकता हूं?
FragmentManager एक (शायद कचरा एकत्रित) चेकबॉक्स का राज्य कैसे लेता है और इसे नए पर लागू करता है?
क्यों यह केवल चेकबॉक्स (TextViews की नहीं ??)
तो की स्थिति यह योग करने के लिए बचाने के लिए है: कैसे onViewStateRestored
काम करता है?
नोट मैं Fragmentv4 उपयोग कर रहा हूँ, इसलिए कोई एपीआई> 17 के लिए onViewStateRestored