Tengo el siguiente código:Cómo cancelar Toast creado en un método diferente en android?
private Toast movieRecordToast;
private void displayNextMovie() {
if (movieRecordToast != null) movieRecordToast.cancel(); // cancel previous Toast (if user changes movies too often)
movieRecordToast = Toast.makeText(getApplicationContext(), "Next", Toast.LENGTH_SHORT);
movieRecordToast.show();
private void displayPrevMovie() {
if (movieRecordToast != null) movieRecordToast.cancel();
movieRecordToast = Toast.makeText(getApplicationContext(), "Prev", Toast.LENGTH_SHORT);
movieRecordToast.show();
Pero si displayNextMovie
se llama rápidamente varias veces y luego displayPrevMovie
se llama, "Siguiente" Toast está siendo mostrada y sólo después de que se muestra que "Anterior". Parece que la cancelación no funciona correctamente.
UPD. mirando otras preguntas sobre lo mismo - parece que Android no cancela tostadas demasiado rápido ... –
Como un lado, ¿por qué no tienes una sola función 'private void displayMovieToast (String s)' que toma ya sea "Anterior "o" Siguiente "como argumento? – rajath