/ / Metoda getActivity () jest niezdefiniowana dla typu new Runnable () {} - java, android, spinner

Metoda getActivity () jest niezdefiniowana dla nowego typu Runnable () {} - java, android, spinner

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 № 1

Cóż, 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);