Android - Spinner: ¿cómo puedo distinguir las acciones del usuario de las acciones de la computadora en un OnItemSelectedListener

Tengo problemas para manejar una rueda giratoria, ¿puedo pedirle ayuda?

Tengo una ruleta con su adaptador. Inicializo la ruleta con una lista de valores al comenzar mi actividad. Luego, fuerzo el valor seleccionado para que sea el utilizado en el objeto que administro.

Una vez que se inicializa la pantalla: cuando el usuario selecciona un valor en la ruleta, de acuerdo con el valor seleccionado, puedo continuar (o no) a otra actividad para permitirle al usuario elegir un valor complementario y necesario. Si el usuario "cancela" esta segunda actividad, quiero revertir la ruleta a su valor seleccionado previamente, y cancelar algunas acciones realizadas mientras tanto. Si el usuario va al final de la segunda actividad, todo está bien y quiero que Juste actualice la pantalla giratoria con los datos seleccionados en la segunda actividad (sobrecargo el método getView en el adaptador para hacer esto).

En general, puedo hacer todo esto fácilmente, sin embargo, cuando forzo el valor seleccionado en la ruleta al comienzo de mi actividad, o cuando regreso de la segunda actividad mediante "Cancelar", se captura el evento de cambio de valor y el segundo se activa la actividad (el usuario no hizo clic en nada).

¿Cómo permitiría que se lanzara la segunda actividad solo si el cambio del valor seleccionado en la ruleta se debe a una acción manual del usuario, y evitaría que la misma segunda actividad se inicie cuando se cambie el valor de la ruleta? código "?

Intenté muchas soluciones, como configurar un booleano en el adaptador que indica si el próximo evento se generará debido a una acción "en el código". O también poner un booleano en el adaptador que le dice si el adaptador se ha inicializado, y forzo ese booleano a verdadero en el evento de cambio de cambio forst. Pero nada que realmente funcione bien.

Gracias por tu ayuda.

Oliver

Respuestas a la pregunta(1)

Su respuesta a la pregunta