मान लें कि आप मौजूदा व्यू कार्यान्वयन से अपनी खुद की व्यू क्लास प्राप्त करना चाहते हैं, थोड़ा सा मूल्य जोड़ना, इसलिए कुछ चर बनाए रखना जो आपके व्यू के राज्य को सार्थक तरीके से प्रस्तुत करते हैं।View.onSaveInstanceState() और View.onRestoreInstanceState() View.BaseSavedState का उपयोग कर ओवरराइडिंग?
यह अच्छा होगा अगर आपका दृश्य स्वचालित रूप से अन्य लोगों की तरह ही अपने राज्य को सहेज लेगा (यदि कोई आईडी असाइन की गई हो) तो आप onRestoreInstanceState()
और onSaveInstanceState()
ओवरराइड करना चाहेंगे।
बेशक, आपको अपनी बेस क्लास के संबंधित तरीकों को कॉल करने की आवश्यकता है, और आपको अपनी बेस जानकारी को अपनी बेस क्लास के साथ जोड़ना होगा।
जाहिर है, ऐसा करने का एकमात्र सुरक्षित तरीका अपने सुपर क्लास 'Parcelable
को अपने Parcelable
में लपेटना है ताकि चाबियाँ मिश्रित न हों।
अब View.BaseSavedState
है और इसके दिलचस्प getSuperState()
विधि, लेकिन मैं किसी भी तरह समझने के लिए यह वास्तव में मूल्य सिर्फ व्युत्पन्न देखें राज्य मानों के साथ आधार वर्ग 'Parcelable
एक Bundle
में भंडारण और लौटने कि करने के लिए कहते हैं असफल। दूसरी तरफ, हो सकता है कि कुछ अन्य सिस्टम घटक सभी इंस्टेंसस्टेट जानकारी View.AbsSavedState
(उदाहरण के लिए getSuperState()
कहलाए जा सकें) की अपेक्षा करेंगे?
कोई अनुभव जो आप साझा करना चाहते हैं?
धन्यवाद! मैंने इस मामले में कुछ उदाहरण कोड कभी नहीं देखा। इसने मेरे लिए सब कुछ स्पष्ट कर दिया है। –
लिखने के लिए कभी भी SaveInstanceState द्वारा कॉल नहीं किया जाता है। इसका उद्देश्य क्या है? – dylan7
@ dylan7 - राज्य को क्रमबद्ध करते समय इसे ढांचे द्वारा बुलाया जाता है। –