25 Mayıs 2011 Çarşamba

Android Serisi 3. Bölüm - Values klasörü ve Localization

Arkadaşlar merhaba, android serisinin üçüncü bölümüyle tekrar beraberiz. İsterseniz hiç uzatmadan direk values klasörünün ne işe yaradığını belirterek başlayalım. Özetle values klasörü string sabitlerden oluşan xml dosyaları içerir. Genelde localization ve başka nesnelere yeni değerler atamak amacıyla kullanılır. Localization'ı zaten birlikte yapacağız ancak başka nesnelere yeni değer atamak cümlesiyle neyi kastediyoruz onu kısaca açıklayalım.

Mesela resource'a kendi yaptığınız renk kodunu ekleyebilirsiniz. Values klasörüne colors.xml adıyla yeni bir Android XML dosyası oluşturup aşağıdaki kodu içerisine kaydedin.

<?xml version="1.0" encoding="utf-8"?>
<resources>
<color name="baslik">#AAFFFF99</color>
<color name="satir_1">#FF0000FF</color>
<color name="satir_2">#90FF0000</color>
<color name="uyari">#AA0000FF</color>
</resources>

Artık bu color elemanlarını name tag'inde atadığınız değere göre kullanmanız için hiçbir engel yok. R.color.baslik şeklinde çağırmanız yeterli.

LOCALIZATION

2. bölümde yapmış olduğumuz örnek uygulamayla devam edelim. Orada hardcoded eklediğimiz bölümleri dinamikleştirmiş olacağız. Bunun için values klasöründe aşağıdaki gibi yeni bir android.xml dosyası oluşturun.



Not: Benim emulatörümde türkçe dil desteği olmadığından dolayı -ki büyük ihtimal sizinkinde de olmayacaktır- fransızca'ya göre ayarlama yapıyor olacağım.

şimdi values klasörümüz içindeki string.xml dosyasını açıp içini aşağıdaki gibi değiştiriyoruz.

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Our Android Programme!</string>
<string name="app_name">Sample App Login Screen</string>
<string name="lblUsername">Username: </string>
<string name="lblPassword">Password: </string>
<string name="lblBtnGiris">Login</string>
<string name="msg_Login_1">Invalid Username or Password!</string>
<string name="msg_Login_2">Wellcome Dear</string>
</resources>

aynı şekilde values-fr klasörü içerisindeki string.xml dosyasını da aşağıdaki gibi değiştiriyoruz.

<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="hello">Android Programımız</string>
<string name="app_name">Deneme App Giriş Ekrani</string>
<string name="lblUsername">Kullanıcı Adı: </string>
<string name="lblPassword">Şifre: </string>
<string name="lblBtnGiris">Giriş</string>
<string name="msg_Login_1">Geçersiz kullanıcı adı veya parola!</string>
<string name="msg_Login_2">Hoşgeldiniz Sayın</string>
</resources>

xml tarafında yapacağımız son değişiklik layout klasörü içerisinde bulunan main.xml dosyasındaki tüm viewların text attributelerini aşağıdaki gibi değiştirmek. Ben sadece bir tanesini örnek olarak koyuyorum.

<TextView
android:layout_height="wrap_content"
android:layout_width="fill_parent"
android:layout_weight="2"
android:text="@string/lblUsername"
android:gravity="right"
/>

Artık xml tarafında yapacaklarımız bitti. Şimdi kod tarafına geçelim. Toast.makeText methodumuzu aşağıdaki gibi değiştirelim.

Toast.makeText(getApplicationContext(), R.string.msg_Login_2 + ' ' + txtUsername.getText().toString(), Toast.LENGTH_SHORT).show();

Şimdi uygulamamızı hiç dil değişikliği yapmadan çalıştıralım.


Şimdi de dili fransızcaya getirip uygulamamızı tekrar çalıştıralım.


Dosya İsmi: Activity_View_Toast_Localization.rar
Dosya Boyutu:43.97 KB

Hiç yorum yok:

Yorum Gönder