0 votos
Hola, en días pasados me han ayudado mucho, espero poder seguir contando con su ayuda.

Estoy trabajando seekbar, resulta que cuando cambio de layout, y vuelvo donde estaba trabajando un seekbar, esta vuelve a cero, necesito que conserve tanto el valor como la posición donde se dejó, sin importar las ventanas (layout) que se abran posteriormente dentro de la app.

Debo también bloquear las seekbar, es decir; tengo dos seekbar, si muevo uno, el otro debe "bloquearse" hasta que el primero vuelva a cero.

Gracias por su ayuda.
preguntado por Camilo Parada Garcia Abr 14, 2015 en Android

1 Respuesta

+1 voto
Mejor respuesta
¡Hola de nuevo Camilo!

Lo que te está pasando es que cuando vuelves a la Activity anterior, la que tiene los seekbar, no tienes guardada la información. Cuando vayas a cambiar de Activity, tienes que sobreescribir el método onStop() para guardar el estado, y onResume() para recuperarlo (En nuestro libro tienes el ciclo de vida de Activity completo con ejemplos y el cómo guardar estados http://jarroba.com/libro-android-100-gratis/).

Lo segundo que necesitas, sugiero que empleés una variable global para el SeekBar. De esta forma, cuando le primero empiece a moverse ( onStartTrackingTouch() ) lo que haces es deshabilitar el otro ( Seekbar.setEnabled(false) ), y cuando pare de moverse ( onStopTrackingTouch() ) lo vuelves a habilitar.
respondido por Ramon [Admin] Abr 15, 2015
seleccionada por Camilo Parada Garcia Abr 16, 2015

Gracias, ha sido una gran guía, pero resulta que necesito guardar la posición, averiguando encontré que esto se hace con "andorid:progress" en el XML de layout, según la info para desarrolladores debo usar  "@[package:]type:name" el paquete sé que son los recursos, pero en este caso mi variable está en el java, y necesito llamarlo al "andorid:progress".

La variable que llamo ha sido guarda en el metodo onStop(), para así conservar valor cuando se navegue entre ventanas, según me dices.

Necesito guardar esta variable de forma "súper global", es decir, poder  llamarla en el XML, y de esta forma conservar la última posición del seekbar manipulado.

 

¿Esto es posible? llamar variables del java al XML, si es así, por favor, ayúdame con un ejemplo.

Gracias por tu ayuda.

Tienes un ejemplo para guardar valores globales en Android en http://developer.android.com/training/basics/data-storage/shared-preferences.html