#ANDROID - Preference Kullanımı (EditText, Checkbox ve ListPereferences)
Preference ile kullanıcının bir uygulamayı daha kişisel kullanabilmesi adına bilgi saklayabiliriz. Uygulama kapatılsa da bu bilgiler silinmez.
Öncelikle res klasörünün altındaki xml klasörümüzün (yoksa oluşturabilirsiniz) içine ayar.xml dosyası oluşturuyoruz.
ayar.xml dosyası:
ListPreference'nin içerisine dikkat edecek olursak bir @array var. Yani bilgileri values klasörünün altındaki array.xml dosyasından alıyor. Hemen bu dosyamızı da oluşturuyoruz.
array.xml dosyası:
Şimdi "Ayar.java" adında bir class oluşturuyoruz. Bu classımızın farkı bu kez Activity'den değil, PreferenceActivity'den extends edilmesi olacak. Ve oluşturduğumuz ayar.xml (PereferenceScreen) dosyamızı bu classda tanıtacağız.
Ayar.java dosyası:
Ve bu class'ı AndroidManifets.xml dosyamızda tanıtıyoruz.
Böylelikle veri saklama işlemini halletmiş olduk. Buradan alınan veriler kullanıcı uygulamayı telefonundan kaldırıncaya kadar saklanır.
Şimdi Pereference kullanarak aldığımız veriyi/değeri uygulamada nasıl kullanacağımızı göreceğiz. Biz isim, müziği aç/kapa ve il bilgisini tutan bir pereference hazırladık. Daha önceki makaleleri okudaysanız eğer biz splash ekran hazırlarken arka planda 3 saniyelik bir müzik çalıyorduk. Şimdi uygulamamıza preference ekranında eğer müzik kutusu işaretliyse bu müziği çal, işaretli değilse bu müziği çalma diyeceğiz.
Fazla konuşmadan pratiğe dökelim olayı. Biz müziğimizi Hosgeldin.java dosyasında çalıyorduk. O yüzden yeni bir dosya falan oluşturmadan Hosgeldin.java dosyamızı açıyoruz.
Splash ekran oluşturma: http://www.hcengiz.com/2015/09/android-karslama-ekran-splash-screen_28.html
Hosgeldin.java dosyası:
Evet preference verilerini kullandığımız Hosgeldin.java dosyasının son hali bu. Müzik ayarlarını uygulamamızda kullanmak için sadece onCreate metodunun içerisine 3 satır kod ekledim. Bu satırların sonuna sonradan yazıldığının anlaşılması için yorum satırıyla "yeni" yazdım.
Böylelikle artık kullanıcı açılış ekranında müziğin çalıp çalmamasını kendisi belirleyecek.
Makale görseli:
Öncelikle res klasörünün altındaki xml klasörümüzün (yoksa oluşturabilirsiniz) içine ayar.xml dosyası oluşturuyoruz.
ayar.xml dosyası:
<?xml version="1.0" encoding="utf-8"?> <PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"> <EditTextPreference android:title="Adınızı girin: " android:summary="İsminiz?" android:key="isim"/> <CheckBoxPreference android:title="Uygulama Müziği" android:defaultValue="true" android:key="muzigiKapat" android:summary="Kapat/Aç"/> <ListPreference android:title="Örnek Liste" android:key="ilk_listem" android:summary="Liste Örneği" android:entries="@array/list" android:entryValues="@array/listvalues" /> </PreferenceScreen>
ListPreference'nin içerisine dikkat edecek olursak bir @array var. Yani bilgileri values klasörünün altındaki array.xml dosyasından alıyor. Hemen bu dosyamızı da oluşturuyoruz.
array.xml dosyası:
<?xml version="1.0" encoding="utf-8"?> <resources> <string-array name="list"> <item>İstanbul</item> <item>Bursa</item> <item>Ankara</item> </string-array> <string-array name="listvalues"> <item>1</item> <item>2</item> <item>3</item> </string-array> </resources>
Şimdi "Ayar.java" adında bir class oluşturuyoruz. Bu classımızın farkı bu kez Activity'den değil, PreferenceActivity'den extends edilmesi olacak. Ve oluşturduğumuz ayar.xml (PereferenceScreen) dosyamızı bu classda tanıtacağız.
Ayar.java dosyası:
package com.hakancengiz.blogders; import android.os.Bundle; import android.preference.PreferenceActivity; public class Ayar extends PreferenceActivity { @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.ayar); } }
Ve bu class'ı AndroidManifets.xml dosyamızda tanıtıyoruz.
<activity android:name=".Ayar" android:label="@string/app_name" > <intent-filter> <action android:name="android.intent.action.AYAR" /> <category android:name="android.intent.category.DEFAULT" /> </intent-filter> </activity>
Böylelikle veri saklama işlemini halletmiş olduk. Buradan alınan veriler kullanıcı uygulamayı telefonundan kaldırıncaya kadar saklanır.
Şimdi Pereference kullanarak aldığımız veriyi/değeri uygulamada nasıl kullanacağımızı göreceğiz. Biz isim, müziği aç/kapa ve il bilgisini tutan bir pereference hazırladık. Daha önceki makaleleri okudaysanız eğer biz splash ekran hazırlarken arka planda 3 saniyelik bir müzik çalıyorduk. Şimdi uygulamamıza preference ekranında eğer müzik kutusu işaretliyse bu müziği çal, işaretli değilse bu müziği çalma diyeceğiz.
Fazla konuşmadan pratiğe dökelim olayı. Biz müziğimizi Hosgeldin.java dosyasında çalıyorduk. O yüzden yeni bir dosya falan oluşturmadan Hosgeldin.java dosyamızı açıyoruz.
Splash ekran oluşturma: http://www.hcengiz.com/2015/09/android-karslama-ekran-splash-screen_28.html
Hosgeldin.java dosyası:
package com.hakancengiz.blogders; import android.app.Activity; import android.content.Intent; import android.content.SharedPreferences; import android.media.MediaPlayer; import android.os.Bundle; import android.preference.PreferenceManager; public class HosgeldinEkrani extends Activity { MediaPlayer calgici; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.hosgeldin); calgici = MediaPlayer.create(HosgeldinEkrani.this, R.raw.music_app); SharedPreferences ayarlariCek = PreferenceManager.getDefaultSharedPreferences(getBaseContext()); //yeni boolean muzikCalmaDurumu = ayarlariCek.getBoolean("muzigiKapat", true); //yeni if(muzikCalmaDurumu == true) //yeni calgici.start(); Thread zamanlayici = new Thread(){ public void run() { try { sleep(3000); } catch (InterruptedException e) { e.printStackTrace(); } finally { Intent mainAc = new Intent(HosgeldinEkrani.this, Menu.class); startActivity(mainAc); } } }; zamanlayici.start(); } @Override protected void onPause() { super.onPause(); calgici.release(); finish(); } }
Evet preference verilerini kullandığımız Hosgeldin.java dosyasının son hali bu. Müzik ayarlarını uygulamamızda kullanmak için sadece onCreate metodunun içerisine 3 satır kod ekledim. Bu satırların sonuna sonradan yazıldığının anlaşılması için yorum satırıyla "yeni" yazdım.
Böylelikle artık kullanıcı açılış ekranında müziğin çalıp çalmamasını kendisi belirleyecek.
Makale görseli:

Hiç yorum yok :
Yorum Gönder