2011-10-28 17 views
16

No estoy seguro de cómo activar un evento cuando se cambia la actividad. Una cosa que sé es que usa el método onWindowFocusChanged(), pero no sé cómo usarlo. Por favor ayúdenme en un ejemplo, es decir, cuando la actividad cambie, debe mostrar un brindis que diga "Actividad modificada".Cómo usar el método onWindowFocusChanged()?

Respuesta

24

Se llama al siguiente método cuando cambia el foco de la ventana. Por ejemplo, si la ventana gana/pierde el foco, se disparará. En el caso, la ventana gana foco, hasFocus es verdadero y falso de lo contrario.

public void onWindowFocusChanged(boolean hasFocus) {   
      super.onWindowFocusChanged(hasFocus); 
      if(hasFocus) 
       Toast.makeText(context, text, duration).show(); 
    } 
+0

¿Puede proporcionar el código completo de esta función? porque cuando usé este código, todavía hay un error allí. – user1008497

+0

¿Qué tipo de error? Esta es una devolución de llamada para que pueda agregar lo que quiera hacer aquí. – Reno

+0

Múltiple marcador en esta línea -Santax error en token "booleano", elimine este token -hasFocus no se puede resolver -Santax error, insert ";" para completar la declaración estoy usando Eclipse IDE – user1008497

0
public class MainActivity extends AppCompatActivity { 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
    } 

    @Override 
    public void onWindowFocusChanged(boolean hasFocus) { 
     if(!hasFocus) { 
      //do anything you want here 
      Toast.makeText(MainActivity.this,"Activity changed",Toast.LENGTH_SHORT).show(); 
     } 
    } 

} 

Esto podría ayudar ...

0

llama cuando la corriente de la ventana de las ganancias de la actividad o pierde el foco. Este es el mejor indicador de si esta actividad es visible para el usuario. La implementación predeterminada borra el estado de seguimiento de clave, por lo que siempre debe invocarse.

@Override 
public void onWindowFocusChanged(boolean hasFocas) { 
    super.onWindowFocusChanged(hasFocas); 
    //your code here 
} 

hasFocus boolean: Si la ventana de esta actividad tiene foco.

Cuestiones relacionadas