एंड्रॉइड में, जब स्क्रीन अभिविन्यास बदलता है (लैंडस्केप और पोर्ट्रेट के बीच) onCreate
विधि को कॉल किया जाता है, जिसे सही ढंग से संभाला नहीं जाता है, तो परिणाम पूरी गतिविधि को फिर से बदल देगा जब परिणाम लेआउट को बदलता है और सभी एक ही जानकारी को बनाए रखें।एंड्रॉइड: कुशल स्क्रीन रोटेशन हैंडलिंग
मुझे इसे हल करने के कुछ तरीकों के बारे में पता है, लेकिन मुझे सबसे प्रभावी तरीके से रूचि है।
1) मैनिफेस्ट को बताते हुए कि विधि को ओवरराइड करके और इसे खाली छोड़कर अभिविन्यास परिवर्तन को संभालेगा।
2) onSaveInstanceState()
ओवरराइड और बचाने के यहां डेटा onCreate()
3 में repopulated किए जाने वाले) ओवरराइड onPause()
जो डेटा का एक बंडल बना सकते हैं और onSaveInstanceState()
करने के लिए इसे जाहिर भेज देंगे, इन सभी विकल्प हैं, लेकिन एक एक बेहतर अभ्यास (छोटे, मध्यम, डेटा की बड़ी मात्रा)
धन्यवाद है जो
एक तरह से आप गतिविधि के पुन: निर्माण को रोकने और सिर्फ पोर्ट्रेट और लैंडस्केप लेआउट के बीच स्विच कर सकते हैं। मेरा उत्तर [यहां] (http://stackoverflow.com/questions/7749675/how-to-stop-changing-the-orientation-when-a-progress-bar-is-spinning-in-android/7749727#7749727 की जाँच करें) –
इस तरह से अच्छी तरह से काम करने के लिए लगता है, मैं 'रेस/लेआउट-land' फ़ोल्डर का उपयोग करके लेआउट में ऑटो-परिवर्तन की उपयोग करने में सक्षम होना चाहता हूँ। बेशक यह एक साधारण गतिविधि के लिए बहुत अधिक उपरि है। – Sababado
खैर, यह ऑटो matically अपने लेआउट बदल जाएगा, तो आप सिर्फ में कोड यह thats contentView बदलने की जरूरत है। –