2012-07-13 14 views
6

Duplicar posible:
How do I make a toast from a non activity class?cómo mostrar un mensaje de aviso emergente a partir de una clase que no se extiende Actividad

¿Cómo puedo crear y mostrar un mensaje Toast de una clase que no extiende la clase Activity? Estoy usando esta clase en otra clase que se extiende por Activity.

+0

significas liek este Toast.makeText (getApplicationContext(), "error de servidor no responde" + e.getMessage(), Toast.LENGTH_SHORT) .espectáculo(); – user1513889

+1

pls publique el código para saber con facilidad. – AkashG

+0

Mostrar un Toast requiere una referencia al objeto Context. Puede pasar un contexto u objeto de actividad a la clase en la que desea crear un Toast. – param

Respuesta

12

Necesita una referencia de contexto. Puede pasar explícita como parámetro cuando cree su clase

public class MyClass { 

    private static Context context; 
    public MyClass(Context c) { 
    context = c; 
    } 

    public static void showToastMethod() { 
     Toast.makeText(context, "mymessage ", Toast.LENGTH_SHORT).show(); 
    } 

} 
+0

mi método que usa para mostrar tostadas en try catch block es estático – user1513889

+0

ver la edición ... – Blackbelt

+1

Esto parece una excelente manera de filtrar un contexto. En lugar de pasar el contexto como un argumento para 'showToastMethod()' y usarlo desde allí. Tener una referencia permanente puede ser malo si una instancia de tu clase vive más tiempo que la actividad/servicio/... al cual pertenece el contexto. Hacer que la referencia sea estática no lo mejora, es peor. –

4

Puede pasar contexto de esa actividad a su clase al pasar el valor a clase no actividad

ejemplo:

new NonActivityClass(Activityclass.this) ; 

y como en por encima de respuesta

new MyClass(ActivityClass.this); 

En NonActivityClass

public class NonActivityClass { 

    public NonActivityClass (Context context) { 

     Toast.makeText(context, "mymessage ", Toast.LENGTH_SHORT).show(); 
    } 

} 

Espero que esto funcione para usted ...

Cuestiones relacionadas