एक आवेदन जब भी कोई टुकड़ा खो देता है फोकस (अर्थात किसी अन्य गतिविधि/टुकड़ा इस पर खोला जाता है) में मूल्यों की स्थापना के बाद भी, यह onSaveInstanceState()
कहा जाता है है।बंडल() अशक्त देता है, onSaveInstanceState()
developers guide में भी उल्लेख किया गया है।
मैं इसे फिर से शुरू होने पर अपने टुकड़े की स्थिति को बनाए रखने के लिए इस दृष्टिकोण का उपयोग करने की कोशिश कर रहा हूं। मेरा इरादा bundle
को onActivityCreated()
में कॉल करना था, जब टुकड़ा फिर से शुरू हो गया था।
हालांकि onSaveInstanceState
को खंड खोने से पहले बुलाया जाता है। लेकिन, जब onActivityCreated()
कहा जाता है तो यह Bundle savedInstanceState
को शून्य के रूप में प्राप्त करता है।
मैं बंडल से डेटा कैसे प्राप्त कर सकता हूं।
कोड:
@Override
public void onActivityCreated(Bundle savedInstanceState) {
super.onActivityCreated(savedInstanceState);
MyListAdapter adapter = new MyListAdapter(getActivity(),
R.layout.my_row, titles, icons, this);
setListAdapter(adapter);
if (savedInstanceState != null) {
// Never goes inside this condiiton.
// Restore last state for checked position.
mCurCheckPosition = savedInstanceState.getInt("curChoice", 0);
}
}
@Override
public void onSaveInstanceState(Bundle outState) {
super.onSaveInstanceState(outState);
outState.putInt("curChoice", mCurCheckPosition);
}
कुछ log.v विधियों को आजमाएं, और लॉगकैट भेजें। यह दिखाएगा कि कार्यक्रम –
स्विच करता है, एक और तरीका है जिसे आप 'साझा किए गए संदर्भ' –
का उपयोग कर सकते हैं क्या यह हर समय त्रुटि कर रहा है, या केवल पहली बार जब आप एप्लिकेशन खोलते हैं? – Otra