Sto utilizzando la barra delle azioni su un'attività. Per ogni scheda sto mostrando un layout diverso. Dal momento che il layout è troppo pesante. Quindi sto gonfiando ogni layout in una vista. Quindi, in ogni scheda selezionareandroid get restituisce attività null
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();
}
}
}
Così Ora, se seleziono scheda seconda volta e fare un po 'di funzionamento su tale scheda, app si è schiantato su getActivity. (NullPointerException)
si prega di suggerire se c'è qualche altro approccio per layout pesante della cache.
stai dicendo che 'mAct' diventa nullo? Inoltre, non vi è alcun punto nel layout di memorizzazione nella cache, ciò che si dovrebbe fare è caricare il layout in background mentre il foreground dovrebbe avere un'interfaccia utente come una finestra di dialogo di avanzamento o una sorta di schermata interabile di un utente intermedio. Infine, considera la possibilità di ridurre il peso del layout o di caricare gli elementi su richiesta. Puoi pubblicare il tuo layout xml per vedere se è effettivamente pesante? – gaara87