Estoy usando Action Bar en una actividad. Para cada pestaña, estoy mostrando un diseño diferente. Dado que el diseño es demasiado pesado. Así que estoy inflando cada diseño en una vista. Así que en cada pestaña seleccionarandroid get activity devuelve nulo
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();
}
}
}
por lo que ahora si selecciono pestaña segunda vez y hacer alguna operación en esa pestaña, aplicación obtener chocó en getActivity. (NullPointerException)
sugerir por favor si hay algún otro enfoque para caché diseño pesado.
¿Estás diciendo que 'mAct' pasa a ser nulo? Además, no tiene sentido almacenar en caché, lo que debe hacer es tener la carga de diseño en segundo plano, mientras que el primer plano debe tener alguna interfaz de usuario como un diálogo de progreso o algún tipo de pantalla interactiva de usuario intermedio. Finalmente, considere reducir el peso de su diseño o cargue elementos a pedido. ¿Puedes publicar tu diseño xml para ver si realmente es pesado? – gaara87