Usiłuję zapełnić Spinnera obiektem JSON, który pobieram ze spoczynkowego API.
Ale nie mogę wymyślić, jak sprawić, by Adapter działał dla tarczy. próbowałem getActivity()
i próbowałem this
słowo kluczowe. Żaden z nich nie działał i nie mogę znaleźć niczego w Google, gdzie ludzie próbują zaktualizować pokrętło w tym kontekście.
Oto kod, którego używam. http://pastebin.com/bQWDHekB. Kiedy ja tylko getActivity()
to mówi, The method getActivity() is undefined for the type new Runnable(){}
ale kiedy używam this
mówi The constructor ArrayAdapter<String>(new Runnable(){}, int, String[]) is undefined
-- EDYTOWAĆ -- Według odpowiedzi Maartensa znalazłem to za pomocą MainActivity.this
działał lepiej niż getApplicationContext()
. Kiedy używasz getApplicationContext()
ma inny styl i sprawia, że mój spinner ma biały tekst na białym tle. Mam nadzieję, że pomoże to komuś, kto miał takie same problemy jak ja.
Odpowiedzi:
0 dla odpowiedzi № 1Cóż, to dlatego, że Runnable
nie ma getActivity()
metoda.
Można uzyskać odniesienie do czynności zawijania, zastępując
new ArrayAdapter<String>(getActivity(), android.R.layout.simple_spinner_dropdown_item, array_spinner);
przez
new ArrayAdapter<String>(MainActivity.this, android.R.layout.simple_spinner_dropdown_item, array_spinner);
lub, ponieważ po prostu potrzebujesz Context
new ArrayAdapter<String>(getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, array_spinner);
co jest równoważne
new ArrayAdapter<String>(MainActivity.this.getApplicationContext(), android.R.layout.simple_spinner_dropdown_item, array_spinner);