5

मैं शेरलॉक एक्शनबार लाइब्रेरी का उपयोग कर रहा हूं और मेरे पास शेरलाकफ्रैगमेंट एक्टिविटी है जो एक्शनबार को लागू करता है। टैबलिस्ट (मेरे टैब के लिए) और मेरे पास 3 टैब हैं ... प्रत्येक शेरलॉक फ्रैगमेंट है। जब मैं घूमता हूं, तो संपूर्ण गतिविधि फिर से बनाई जाती है और मैं फ्रैगमेंट के भीतर अपने ऑनक्रेट में घोषित सभी चर खो देता हूं। मैं इसे ठीक करने के बारे में कैसे जाउंगा?टैब गतिविधि के भीतर टुकड़ा घूर्णन करते समय सभी डेटा खोना?

मुझे लगा कि मुझे गतिविधियों के बजाए टैब के रूप में टुकड़ों का उपयोग करना चाहिए ... क्या यह गलत है?

संपादित करें: मैं उल्लेख करना चाहिए कि मेरे वर्तमान workaround टैब गतिविधि में स्थिर सूचियाँ है और onPause पर उन सूचियों को टुकड़ा धक्का सामान है (और उनसे वापस onResume पर सामान मिलता है)। मुझे वास्तव में ऐसा करना पसंद नहीं है और मुझे पता है कि एक बेहतर तरीका होना चाहिए।

इसके अलावा, अगर (savedInstanceState == null) के बारे में, मैंने कोशिश की है और यह काम नहीं कर रहा है। मुझे लगता है कि ऐसा इसलिए है क्योंकि मेरे टुकड़े रखने वाली गतिविधि को फिर से बनाया जा रहा है और टैब को फिर से बनाया जाना चाहिए।

+0

आप टुकड़े को बनाए रखना रहे हैं? –

+0

शायद नहीं? यह पहली बार है जब मैंने किसी एप्लिकेशन में टुकड़ों का उपयोग किया है। – snotyak

+1

setRetainInstance() या ऐसा कुछ नामक विधि होनी चाहिए। मैं अभी बहुत खराब कनेक्शन पर हूं, इसलिए यह आपके लिए जांच नहीं सकता है। –

उत्तर

5

कक्षा में setRetainInstance() नामक एक विधि है, जिसे आपको true पर सेट करने की आवश्यकता है। यह आपके टुकड़ों के उदाहरण को बचाएगा, और फिर आप onCreate() में किसी सहेजे गए उदाहरणों की जांच कर सकते हैं।

अधिक जानकारी यहाँ उपलब्ध: http://developer.android.com/reference/android/app/Fragment.html

+1

धन्यवाद। यह है कि अगर मुझे (savedInstanceState == null) { // टैब बनाने के लिए } टैब के लिए अपने ऑनक्रेट() टैब – snotyak

+0

अच्छा है, पहले मैं इन सामग्री को ऑनफिग्रिशन पर संभाला था और सभी को फिर से बनाना नए लेआउट के लिए टुकड़े। आपका समाधान अधिक प्रभावी हो सकता है। –

+0

@ गोखन बरिसएकर यह होना चाहिए, हां :-) –

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