2012-07-13 14 views
6

Eventuali duplicati:
How do I make a toast from a non activity class?Come visualizzare un messaggio Toast in da una classe che non si estende Attività

Come si crea e mostrano un messaggio Toast da una classe che non ha esteso la classe Activity? Sto usando questa classe in un'altra classe che è estesa da Activity.

+0

u significa liek questo Toast.makeText (getApplicationContext(), "Errore del server non risponde" + e.getMessage(), Toast.LENGTH_SHORT) .mostrare(); – user1513889

+1

pls pubblica il codice per sapere con facilità. – AkashG

+0

La visualizzazione di un pane tostato richiede un riferimento all'oggetto Contesto. È possibile passare un contesto o un oggetto attività alla classe in cui si desidera creare un Toast. – param

risposta

12

È necessario un riferimento Riferimento. È possibile passare esplicito come parametro quando si crea la tua classe

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

il mio metodo che utilizza per mostrare il toast in try catch block è statico – user1513889

+0

vedere la modifica ... – Blackbelt

+1

Questo sembra un ottimo modo per perdere un contesto. Piuttosto, passa il contesto come argomento a 'showToastMethod()' e usalo da lì. Tenere un riferimento permanente ad esso può essere negativo se un'istanza della classe vive più a lungo dell'attività/servizio/.. a cui appartiene il contesto. Rendere statico quel riferimento non lo rende migliore, anzi peggiore. –

4

È possibile passare contesto di tale attività per la classe passando valore alla classe nonActivity

esempio:

new NonActivityClass(Activityclass.this) ; 

e come in sopra risposta

new MyClass(ActivityClass.this); 

In NonActivityClass

public class NonActivityClass { 

    public NonActivityClass (Context context) { 

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

} 

Spero che questo funziona per voi ...

Problemi correlati