2010-03-29 13 views
17

Chciałbym wyświetlić wszystkie zasoby na liście, aby użytkownik mógł wybrać jedną. Czy istnieje sposób, aby przechodzić przez wszystkie elementy R.drawable, więc nie muszę ich mocno kodować do mojego programu?Jak wyświetlić listę pobrań zasobów

Odpowiedz

30

Korzystając z metody getFields w klasie ciągania, można wykonywać iteracje na całej liście rysunków.

Field[] drawables = android.R.drawable.class.getFields(); 
for (Field f : drawables) { 
    try { 
     System.out.println("R.drawable." + f.getName()); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 
} 

referencyjny: http://www.darshancomputing.com/android/1.5-drawables.html

+6

za pomocą 'android.R' poda tylko natywne rysunki w zestawie SDK systemu Android. Aby uzyskać rysunki w aplikacji, użyj polecenia "com.example.appname.R" – Anonsage

+0

Dlaczego przechwytujesz ogólny wyjątek? –

+0

Nie jestem pewien - minęło sporo czasu, odkąd napisałem tę odpowiedź. Musiał być jakiś powód ... – Seidr

0

Jeśli zajrzysz do wnętrza wygenerowanego obiektu R.drawable, zobaczysz, że identyfikatory są ciągłe, w moim przypadku (i prawdopodobnie twoje) zaczynające się od 0x7f020000. Ponieważ wydaje się, że są posortowane alfą, prawdopodobnie można dodać fałszywe obrazy AAAAAAA.png i ZZZZZZ.png i dokonywać iteracji wyłącznie między dwoma identyfikatorami.

Nie mogę poprzeć waszych powodów, by próbować tego, ale myślę, że to zadziała.

+0

Masz rację. Zobacz moją odpowiedź tutaj: http://stackoverflow.com/a/19131585/1287856 Działa również do iteracji w raw/folder, a także folder xml /. –

Powiązane problemy