2013-04-22 10 views
6

Gdy używam widoku listy i mam niestandardową klasę Base Adapter, otrzymuję inny kolor tekstu w widoku listy, gdy adapter podstawowy jest tworzony przez getApplicationContext i classname.this. Przez getApplicationContext Otrzymuję biały kolor tekstu, ale classname.this jest czarny. Czy ktoś może mi to wyjaśnić?Różnica między getApplicationContext i classname.this

+2

zobaczyć [tutaj] (http : //stackoverflow.com/questions/5018545/getapplication-vs-getapplicationcontext) – Gunaseelan

+0

może być zastosowany inny motyw do określonej aktywności niż cała aplikacja. Może to spowodować różnice w stylach w zależności od używanego kontekstu. – Shiv

+0

Używam Androida: theme = "@ style/Theme.VPI" we wszystkich moich działaniach –

Odpowiedz

6

Zasadniczo obie są przypadki kontekście, ale różnica polega na przykład stosowanie jest związane z cyklem stosowania, podczas gdy przykład aktywny jest związany z cyklem wystąpienia działania. Tak więc, mają dostęp do różnych informacji o środowisku aplikacji ...

zobaczyć getApplicationContext

EDIT

W znalezieniu odpowiedzi na swoje pytanie to pomoże Ci Android Holo Light styling changes depending on chosen context

+0

Dziękuję bardzo znalazłem odpowiedź w twoim poście –

+0

welcum :) drodzy ... cieszę się, że mogłem ci pomóc – Shiv

6

ActivityName.this odnosi się do kontekstu aktywności. getApplicationContext() odnosi się do kontekstu aplikacji.

W większości przypadków lepiej jest używać kontekstu aktywności.

Sprawdź odpowiedź dostarczoną przez commonsware. Ma szczegółowe wyjaśnienie na ten temat.

When to call activity context OR application context?

Cytat tworzyć powyższy odnośnik

Oto powody dlaczego nie używać getApplicationContext() gdziekolwiek jesteś:

  1. To nie jest kompletna Kontekst, wspierając wszystko to Aktywność robi. Różne rzeczy, które spróbujesz zrobić z tym kontekstem, zawiodą, głównie związane z GUI.

  2. Może tworzyć wycieki pamięci, jeśli kontekst z getApplicationContext() zatrzymuje się na czymś stworzonym przez wywołania, które nie są czyszczone. W przypadku działania, jeśli coś się trzyma, po tym, jak czynność zostanie zebrana, wszystkie pozostałe elementy zostaną wypłukane. Obiekt Application pozostaje przez całe życie twojego procesu.

+0

Dziękuję bardzo, ale tak naprawdę nie mogłem zrozumieć, dlaczego kolor tekstu jest inny w obu kontekstach –

+0

tylko przeczytaj punkt 1 w odpowiedzi. może powód. pokaż nam jakiś kod. – Raghunandan

+0

Tak, masz rację, może powinienem przeczytać odniesienie kontekstowe ostrożnie –

Powiązane problemy