9

Moje urządzenie działa Android 5.1.1 i okazało się, że jeśli używamToast: różnica między "this" a "getApplicationContext()"?

Toast.makeText(this, "This is a toast", Toast.LENGTH_SHORT).show(); 

mam to:

"round" toast

Ale jeśli mogę użyć getApplicationContext() zamiast this,

Toast.makeText(getApplicationContext(), "This is a toast", Toast.LENGTH_SHORT).show(); 

Mam to:

rectangle toast

Oba są wywoływane bezpośrednio z działania.

Dlaczego tak jest?

Odpowiedz

13

Ma to związek z tematem, z którym związany jest kontekst. Użycie this używa kontekstu (zakładam, że Twój Activity lub Fragment) ma inny motyw niż kontekst aplikacji.

Jeśli masz powód, dla którego musisz używać kontekstu aplikacji, możesz zawinąć go w dowolny motyw, którego używasz w swoich zajęciach (zwykle ustawiony w twoim AndroidManifest.xml) i powinien pokazywać toast "okrągły".

Powiązane problemy