Android obtiene el valor de retorno de la actividad anterior para establecer la presabilidad del botón actual

Cada vez que quiero volver a publicar el artículo de otra persona, no tengo que escribirlo yo mismo. Realmente quiero ahorrar tiempo, pero el viaje es muy difícil. Cada vez que leo el blog de alguien y lo hago yo mismo, me encuentro con varios problemas . Así que algunos pasos, pero cuando los sigo, encontraré problemas extraños, ah, ahora pienso en la letra de una canción de Qu Wanting, "Nothing Different", aunque no lo dije con dolor, pero ¿cómo ¿Puedo ir hasta el final? Todo está a favor del viento, mientras no admitas la derrota por el bien de tu sueño, no te detendrás sin importar lo duro que seas. ¡O resúmalo usted mismo! !


En primer lugar, agregué un nuevo botón a la aplicación del proyecto anterior. Se requiere que el botón no se presione antes de que se obtenga el valor devuelto por la actividad anterior. De esta manera, encontré una manera de usar el método startActivityForResult para obtener la página anterior. Devolver el valor, y luego asignar este valor a la variable, configurar el interruptor en la página para determinar el valor de esta variable, a fin de establecer la presabilidad del botón, y también establecer otro contenido.


No voy a escribir sobre la explicación de startActivityForResult, me refiero a otras personas, siento que está bien escrito, esta es la dirección del enlace http://www.cnblogs.com/lijunamneg/archive/2013/02/05/2892616. html



Problemas encontrados en el proceso de implementación:

(1) La página actual no puede obtener el valor de retorno de la página anterior, y los datos obtenidos siguen reportando un error, diciendo que es nulo. Cada vez que se llama al método de devolución de llamada en startActivityForResult, la intención obtenida es nula, y luego el salto Esto me dio un dolor de cabeza, así que agregué Log en varios lugares para ver el resultado, pero no pude encontrar una solución en línea, y finalmente encontré una manera:

Por ejemplo: hay un método onActivityResult en Activity1 y un método setResult en Activity2. Después de que Activity2 se cierra, se debe activar el método onActivityResult de Activity1, pero android: launchMode = "singleTask" de activity2 en mi archivo de manifiesto hace que el Activity en modo singleton. Entonces el resultado onActivityResult de Activity1 no se puede activar. Cambie android: launchMode = "singleTask" a android: launchMode = "singleTop". 


¡Entonces finalmente es posible! ! Es difícil.

(2) También encontré dificultades para configurar la capacidad de hacer clic en el botón. Primero encontré el control, luego setClickable (falso) y lo encontré inútil. . . . Más tarde, encontré un método en Internet y descubrí que estaba escrito delante de setOnClickListener, lo que invalidaba la configuración anterior, porque hay un fragmento de código en setOnClickListener

    if (!isClickable()) {  
               setClickable(true);  
    }  

Luego cámbielo por la parte de atrás.




Supongo que te gusta

Origin blog.csdn.net/u012457196/article/details/38418119
Recomendado
Clasificación