Quiero recoger una cosa que me ha estado ocurriendo en unas pruebas que estoy haciendo con Android y para la cual no he encontrado mucha información al respecto y que no se suele reflejar en los ejemplos de trabajo con ListView que he visto.
Tengo una actividad que extiende ListView y que mediante un ProgressDialog informa al usuario de que se estan cargando los datos y cuando se han cargado los muestra con un Adapter específico y oculta el ProgressDialog, hasta aquí todo perfecto. El problema vino cuando instalé la aplicación en el terminal, al cambiar la orientación de este los datos se volvían a recargar estuviese en la pestaña que estuviese.
Después de mucho buscar encontré un post en el que se hacía referencia a la siguiente url: http://developer.android.com/guide/topics/resources/runtime-changes.html#RetainAnObject
Basicamente lo que explican los de google es lo que yo quería hacer es decir que si los datos ya se han obtenido que no los vuelva a obtener simplemente que los añada al ListView correspondiente.
Como pone en el artículo basta con:
1. Sobreescribir el método onReatinNonConfigurationInstance retornando el objeto que queremos retener:
@Override2. Posteriormente en el onCreate utilizar getLastNonConfigurationInstance para obtener el objeto que mentenemos y si no es nulo lo utilizamos:
public Object onRetainNonConfigurationInstance() {
final MyDataObject data = collectMyLoadedData();
return data;
}
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
final MyDataObject data =
(MyDataObject) getLastNonConfigurationInstance();
if (data == null) {
data = loadMyData();
}
...
}
Saludos !!!
Hola Mazinger, estoy haciendo una aplicación similar. ¿Me podrías indicar como pusiste el ProgressDialog? También tengo una actividad que extiende ListView con un adaptador.
ResponderEliminarGracias de antemano.
saludos.
Hola oconnell-2k4
ResponderEliminarAhora mismo no tengo acceso al codigo.
Durante el finde intento crear una entrada paso a paso del uso del ProgressDialog.
Un saludo.