2012-01-25 12 views
46

Zauważyłem, że klasa Activity ma dwie różne metody uzyskiwania zasobu String. Jest to możliwe dzięki zastosowaniu:Różnica między getString() i getResources.getString()

  • getString(int resId): Powrót zlokalizowaną ciąg od domyślnej tablicy string aplikacji pakietu.

  • getResources().getString(int id): Zwraca wartość ciągu skojarzonego z określonym identyfikatorem zasobu. Zostanie pozbawiony wszelkich stylizowanych informacji tekstowych.

Nie rozumiem, jaka jest różnica między obiema metodami. Czy ktoś może mi powiedzieć?

+0

dobrze, główną różnicą jest to, że aktywny # getString() będzie dostęp tylko do swojej ** własne zasoby **, podczas gdy jest to całkowicie możliwe do pobrania innych zasobów aplikacji jako "Zasoby? obiekt i wybierz z tego. To znaczy. w praktyce, bez różnicy. – Jens

Odpowiedz

63

Są takie same jak Activity.getString(int) robi dokładnie to:

public final String getString(int resId) { 
    return getResources().getString(resId); 
} 
4

Są to ta sama metoda, nic specjalnego.

+2

Nie ta sama metoda, ale dwie różne metody wykonania tej samej pracy. –

3

we fragmentach można użyć również getString() zamiast getActivity().getString()