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/no
retourneert OK/Cancel
in 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 (bijvoorbeeldTabHost/TabWidget
vereist 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.xml
kijkt, worden ze gedefinieerd als een <selector>
XML-element, dat wordt opgeblazen tot een StateListDrawable
tijdens 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.