Join FlipAndroid.COM Telegram Group: https://t.me/joinchat/F_aqThGkhwcLzmI49vKAiw


En Android, ¿cómo puedo tomar una acción cada vez que cambia una variable?

En una aplicación de Android (o Java en general si no es diferente), ¿cuál es la mejor forma de llamar a un método cada vez que cambia el valor de una variable?

  • Botón My-Location de GoogleMaps v2 Android, no se muestra
  • Android: enum vs static final ints?
  • Cómo acceder a getFilesDir () como una variable de entorno?
  • "No se pudo encontrar la clase 'android.support.v4.app.FragmentActivity'" Error
  • ¿Cómo puedo obtener el texto antes y después de la "-" (guión)
  • Varios archivos dex definen landroid / support / annotation / AnimRes
  • Cómo recortar un java stringbuilder?
  • Excepción de ventana filtrada aunque no se utilice ningún servicio
  • ¿Cómo cambio la jerarquía principal de una actividad?
  • Error de Gradle después de incluir facebook sdk
  • Diferentes resultados de expresión regular en Java SE y plataforma Android
  • OnPageFinished no disparar correctamente al procesar la página web
  • 2 Solutions collect form web for “En Android, ¿cómo puedo tomar una acción cada vez que cambia una variable?”

    Lo que realmente quieres hacer es configurar el modelo basado en eventos para activar un oyente cuando sucede un evento (en su caso, digamos que un valor de variable ha cambiado). Esto es muy común no sólo para Java, sino también para otros lenguajes de programación, especialmente en el contexto de la programación de la interfaz de usuario (aunque no necesariamente sólo para eso)

    Normalmente, esto se hace siguiendo los pasos siguientes:

    • Decida la interfaz que el oyente debe implementar en el caso del evento se activa. Para su caso, podría llamarlo VariableChangeListener y definir la interfaz como:
    public interface VariableChangeListener { public void onVariableChanged(Object... variableThatHasChanged); } 

    Usted podría poner cualquier argumento que usted piensa que es importante para el oyente manejar aquí. Al abstraer en la interfaz, se tiene la flexibilidad de implementar la acción necesaria en el caso de que la variable haya cambiado sin acoplamiento estricto con la clase donde se está produciendo el evento.

    • En la clase donde ocurrió el evento (de nuevo en su caso, la clase donde la variable podría cambiar), agregue un método para registrar un oyente para el evento. Si llama a su interface VariableChangeListener entonces tendrá un método tal como
     // while I only provide an example with one listener in this method, in many cases // you could have a List of Listeners which get triggered in order as the event // occurres public void setVariableChangeListener(VariableChangeListener variableChangeListener) { this.variableChangeListener = variableChangeListener; } 

    Por defecto, no hay nadie que escuche el evento

    • En el caso de un evento ocurrido (la variable ha cambiado), a continuación, activará el oyente, el código se vería como algo similar
     if( variableValue != previousValue && this.variableChangeListener != null) { // call the listener here, note that we don't want to a strong coupling // between the listener and where the event is occurring. With this pattern // the code has the flexibility of assigning the listener this.variableChangeListener.onVariableChanged(variableValue); } 

    Una vez más esto es una práctica muy común en la programación básicamente reacciona a un evento o cambio variable. En Javascript puedes ver que esto forma parte de onclick (), en Android puedes comprobar el modelo impulsado por eventos para varios oyentes, como OnClickListener, configurado en un evento onclick Button . En su caso, sólo activará el oyente en función de un evento diferente que sea siempre que la variable haya cambiado

    Usted puede hacer como esto. Como usted no ha definido lo que quiere exactamente. Puede funcionar. Supongamos que su nombre de variable es v. Tome una variable anterior_v. Hacer anterior_v = v; . Usted puede poner en su código según su requisito:

     if(v!=previous_v){ //your stuffs } 
    FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.