मैं गतिविधि पर एक्शन बार का उपयोग कर रहा हूं। प्रत्येक टैब के लिए मैं अलग-अलग लेआउट दिखा रहा हूं। चूंकि लेआउट बहुत भारी है। इसलिए मैं प्रत्येक लेआउट को एक दृश्य में फुला रहा हूं। इसलिए प्रत्येक टैब पर तो अब अगर मैं टैब दूसरी बार चयन चयनएंड्रॉइड गतिविधि रिटर्न शून्य
public void onTabSelected(Tab tab, FragmentTransaction ft) {
if (mView == null) {
mView = LayoutInflater.from(mAct).inflate(mLayout, null); // mAct is Activity reference
}
mAct.setContentView(mView);
for (int i = 0; i < mFrags.length; i++) {
mFrags[i] = (LutronFragment) mAct.getFragmentManager()
.findFragmentById(mIds[i]);
if (mFrags[i] != null) {
mFrags[i].setupHeader();
}
}
}
public void onTabUnselected(Tab tab, FragmentTransaction ft) {
for (Fragment f : mFrags) {
try {
if (f != null) {
ft.remove(f);
}
} catch (IllegalStateException e) {
e.printStackTrace();
}
}
}
और उस टैब पर कुछ आपरेशन करते हैं, अनुप्रयोग getActivity पर दुर्घटनाग्रस्त हो गया मिलता है। (NullPointerException)
कृपया सुझाव है कि अगर वहाँ के लिए कुछ अन्य दृष्टिकोण है भारी लेआउट कैश।
क्या आप कह रहे हैं कि 'एमएटीटी' शून्य हो गया है? इसके अलावा, कैशिंग लेआउट में कोई बिंदु नहीं है, आपको क्या करना चाहिए पृष्ठभूमि में लेआउट लोड होना चाहिए, जबकि अग्रभूमि में कुछ यूजर इंटरफेस होना चाहिए जैसे प्रगति संवाद या किसी प्रकार का इंटरमीडिएट यूजर इंटरैक्टिव स्क्रीन। अंत में, अपने लेआउट के वजन को कम करने, या मांग पर तत्व लोड करने पर विचार करें। क्या आप यह देखने के लिए अपना लेआउट एक्सएमएल पोस्ट कर सकते हैं कि यह वास्तव में भारी है या नहीं? – gaara87