Pastaruoju metu vis dažniau tenka pažvelgti į kitų Android programų kodus. Labai dažnai pamatęs kodą suprantu, kad programuotojas nepagalvojo apie kodo aiškumą, lengvesnį jo modifikavimą. Penktojoje pamokoje apie programavimą Android telefonams, parodysiu kaip reikia sukurti ir naudoti bendrus tekstinius (String tipo) pranešimus visoje mūsų programoje.
Kiekviena Android programa turi tekstinius pranešimus. Visi šie pranešimai turi būti susieti su programos ištekliais (resources), o ne būti paprasčiausia parašyti programoje. Tokių tekstinių pranešimų naudojimas programai suteikia daug privalumų:
- Tokius tekstiniu pranešimus labai lengva prižiūrėti, keisti. Svarbu tai, kad pranešimus gali keisti netik programuotojas.
- Vienas pranešimas gali būti naudojamas daugelyje programos vietų.
- Programos kalbos pakeitimas labai lengvai atliekamas: nurodoma tik tekstinių pranešimų išteklių byla.
Sukuriame išteklių bylą
Tekstinių pranešimai yra saugomi /res/values/strings.xml byloje. Šios bylos pagalba mes galime aprašyti tekstinius pranešimus, o vėliau juos globaliai naudoti programoje. Pavyzdžiui, žemiau pateiktame kode mes apibrėžiame programos pavadinimą ir pranešimo tekstą.
<?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Hello World, SveikasPasauli!</string> <string name="app_name">PirmojiPrograma</string> </resources>
Naudojame aprašytus pranešimus savo programoje
Norėdami gauti pranešimą iš išteklių bylos, mums paprasčiausiai reikia pasinaudoti metodu getString(). Žemiau pateiktas kodas turi būti naudojamas Activity klasėje norint gauti reikiamą tekstinį pranešimą.
String helloText = getResources().getString(R.string.hello);
Apibrėžiame ir naudojame pranešimų masyvą
Labai dažnai galime susidurti su atvejais, kai mums reikia apibrėžti tam tikrą tekstinių pranešimų sąrašą. Žinoma, tai galime padaryti paprasčiausia daug kartų pakartoję anksčiau aprašytą metodą, bei saugodami masyvą atmintyje. Toks būdas netik neefektyvus, bet gana keblus. Norėdami gauti tokį pat rezultatą, dar vienoje išteklių byloje – /res/values/arrays.xml sukuriame masyvą, kurį galėsime naudoti savo programoje.
Minėtoje byloje sukuriame masyvą, su jo elementais:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="game_cat"> <item>@string/cat_human</item> <item>@string/cat_animals</item> <item>@string/cat_sport</item> <item>@string/cat_colors</item> <item>@string/cat_weapons</item> <item>@string/cat_weather</item> </string-array> </resources>
Norint gauti šį masyvą mūsų programoje, mums paprasčiausiai užtenka programoje įterpti šį kodą:
String[] gameCat = getResources().getStringArray(R.array.game_cat);
Panaudojimas
Šis statinis masyvų sukūrimas gali būti panaudojamas įvairiausiose situacijose: koreguojant programos nustatymus, renkantis tam tikras kategorijas ir t.t. Žemiau pateiktas pavyzdinis kodas yra paimtas iš mano sukurto žaidimo „Pakaruoklis“. Visas kategorijų masyvas naudojamas, kai vartotojas turi pasirinkti žaidimo kategoriją.
String[] gameCat = getResources().getStringArray(R.array.game_cat);
new AlertDialog.Builder(this).setTitle(R.string.select_cat_title)
.setItems(cRaces,new DialogInterface.OnClickListener() {
public void onClick(DialogInterface dialoginterface, int i) {
startGame(i);
}}).show();
Štai kaip kodas atrodo sukompiliavus ir paleidus programą:
|
|
|
|
|
Gediminas Ubartas http://www.gedzis.net || @Gedzis || Facebook profilis || Google+ profilis
Jaunas programuotojas kilęs iš Telšių, o dabar gyvenantis ir dirbantis Vilniuje. Besidomintis programavimu, Android OS. Dabar studijuoja Verslo informatikos specialybę, Mykolo Romerio Universitete. Laisvalaikį dažniausiai praleidžia krepšinio aikštelėje, būdamas su draugais arba tiesiog kurdamas įvairiausius projektus. |
| Panašūs įrašai | Kiti autoriaus įrašai | Kiti kategorijos įrašai |





2011-10-17 01:33
Žinoma toks menkas dalykas kaip reikšmės gavimas iš resursų neturėtų įtakot programos veikimo spartos, bet tik šiaip pasakau. Vis dėlto programuojam ne PC su neribotais ištekliais, o mažam aparačiuke
2011-10-17 08:08
Manau, kad dėl programos tam tikrų ypatybių, programuotojo darbo palengvinimo ir lengvo programos konfigūravimo reikia investuoti tas kelias milisekundės dalis, kad būtų naudojami pranešimai
2011-10-17 10:00