Nuttige Android-systeembronnen

Android wordt geleverd met veel systeembronnen (android.R) die kunnen worden gebruikt om u tijd te besparen en uw applicatie lichter te maken.

Ik heb bijvoorbeeld onlangs ontdekt dat Android gelokaliseerde tekenreeksen biedt voor Ja (android.R.string.yes), Nee (android.R.string.no) , Annuleren (android.R.string.cancel) en Ok (android.R.string.ok), naast andere strings.

Welke andere systeembronnen raadt u aan te gebruiken? Of is er een reden om het gebruik van systeembronnen te vermijden?

Bewerken: zoals opgemerkt door Tomas, produceren sommige van deze bronnen mogelijk niet de resultaten die u zou verwachten (met name android.R.string.yes/noretourneert OK/Cancelin plaats van Yes/No, zoals gemeld hier). Voor meer controle kunt u systeembronnen kopiëren vanuit de Android-broncode.


Antwoord 1, autoriteit 100%

Je kunt een volledige lijst van alle systeembronnen vinden in het android-pakket.

Elke keer als ik iets op Android wil doen, controleer ik of er een systeembron is die dekt wat ik wil doen. Het is handig om de Android-broncode te importeren (in het bijzonder hun /res/ map) bij het zoeken naar reeds geïmplementeerde bronnen die u misschien wilt, zodat u hun specifieke implementatie kunt zien.

Persoonlijk merk ik dat ik het vaakst gebruik:

  • Ingebouwde Android-lay-outs voor standaardtaken, zoals vervolgkeuzelijsten voor spinners.
  • Android-ID’s (android.R.id), omdat u deze vaak moet gebruiken als u bepaalde Android-widgets wilt gebruiken (bijvoorbeeld TabHost/TabWidgetvereist dat u “android:id/tabhost“, “android:id/tabs” en “android:id/tabcontent” gebruikt als u een XML-layout wilt implementeren).
  • Ingebouwde kleuren, vooral android.R.color.transparent.
  • Android’s ingebouwde fade-in en fade-out animaties in android.R.anim.

Antwoord 2, autoriteit 31%

Je kunt toegang krijgen tot systeembronnenvanuit xml door ze kwalificeren met de Android-pakketnaam, dat wil zeggen "@android:string/ok"


Antwoord 3, autoriteit 10%

Zoals CommonsWare al zei, hoeft u de Android-bronrepository niet te downloaden om de bronnen te inspecteren; ga gewoon naar <android-sdk-dir>/platforms/android-X.X/data/res/. Als u deze echter gaat gebruiken, zult u snel teleurgesteld worden als u ontdekt dat de meeste nietbeschikbaar zijn via de klasse android.R. Meestal moet ik ze toch in mijn Eclipse-werkruimte importeren. 🙁

Mijn favoriete bronnen zijn de tekenbare tekeningen die anders worden weergegeven op basis van de gefocuste/ingedrukte/uitgeschakelde toestanden van een besturingselement (zoals android.R.drawable.btn_default). Ik gebruik die of pas ze aan om aangepaste knoppen voor mijn apps te maken. Zoals u kunt zien als u naar /data/res/drawable/btn_default.xmlkijkt, worden ze gedefinieerd als een <selector>XML-element, dat wordt opgeblazen tot een StateListDrawabletijdens runtime. Je zou ook je eigen StateListDrawables kunnen maken en ze zijn super handig, zowel als View-achtergronden als als “samengestelde drawable” van een knop (zie TextView.setCompoundDrawables()).


Antwoord 4, autoriteit 5%

Houd er rekening mee dat de vertalingen erg slecht zijn.

Het Duitse ‘nee’ in Android-25 is bijvoorbeeld ‘Abbrechen’, wat eigenlijk ‘annuleren’ betekent. “Ja” wordt vertaald als “OK”…

Ik weet niet zeker hoe goed de andere talen zijn, dus ik zou een eigen vertaling gebruiken.

Other episodes