क्या मुझे कुछ याद आ रहा है या Fragment
के पास onRestoreInstanceState()
विधि नहीं है? यदि नहीं, तो मैं कुछ समान प्राप्त करने के बारे में कैसे जा सकता हूं?एंड्रॉइड खंड परRestoreInstanceState
उत्तर
टुकड़ों में onRestoreInstanceState
विधि नहीं है।
आप उसी परिणाम को onActivityCreated
में प्राप्त कर सकते हैं, जो सहेजे गए उदाहरण स्थिति (या शून्य) के साथ एक बंडल प्राप्त करता है।
स्रोत कोड here देखें।
टुकड़े गाइड के ListFragment example में आप पा सकते हैं:
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("curChoice", mCurCheckPosition);
}
जो तुम इस तरह उपयोग कर सकते हैं: के बाद टुकड़ा ढेर से वापस लौट
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
if (savedInstanceState != null) {
// Restore last state for checked position.
mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
}
}
onActivityCreated()
शुरू हो जाती है।
मुझे पता है, कि तुम जवाब स्वीकार कर लिया है, लेकिन आप official documentation about fragments पढ़ना चाहिए, और यह कहते हैं (अनुच्छेद "टुकड़ा जीवनचक्र हैंडलिंग"):
तुम एक बंडल का उपयोग कर एक टुकड़ा की स्थिति को बनाए रखने के लिए कर सकते हैं , यदि गतिविधि की प्रक्रिया मारे जाती है और गतिविधि को फिर से बनाया जाने पर आपको खंड स्थिति को पुनर्स्थापित करने की आवश्यकता होती है। आप टुकड़ा के onSaveInstanceState() कॉलबैक के दौरान राज्य को बचाने और या तो OnCreate(), onCreateView(), या onActivityCreated()
तो दौरान पुनर्स्थापित कर सकते हैं, तो आप उपयोग कर सकते हैं कि सूट आप सबसे अच्छा: onCreate()
, onCreateView()
, या onActivityCreated()
Fragment
की onViewStateRestored
Activity
की onRestoreInstanceState
के बराबर है। लेकिन इसे onActivityCreated(Bundle)
और onStart()
से पहले कहा जाता है।
यह एक सतत डिजाइन नहीं है, है ना? –
यह भी खंड को फिर से शुरू करने का ख्याल नहीं रखता है? विन्यास में बदलाव के लिए यह ठीक है, लेकिन क्या होगा यदि आप एक टुकड़े से एक गतिविधि में जाते हैं और फिर टुकड़े पर वापस जाते हैं? – speedynomads
टुकड़े एक गतिविधि से संबंधित होना चाहिए, इसलिए यदि आप टुकड़े में सहेजते हैं, तो यह मूल गतिविधि को बचाता है। तो यदि आप उस टुकड़े को छोड़ देते हैं (जो एक गतिविधि से संबंधित है) और टुकड़े पर वापस जाएं, तो सभी मानों को पैरेंट गतिविधि – Shaun