Merhabalar,

Bir önceki yazımda shared preferences ile veri saklama metodundan bahsetmiştik. Bunun üzerine ekleme yaparak bir xml dosyasından kullanıcıya seçenek sunabileceğimiz bir preferences örneği yapalım. İlk olarak Preferences adlı yeni bir android projesi açıyoruz. Daha sonra main.xml de resimdeki TextView yerine bir tane buton koyalım. Bu butona tıkladığımızda başka bir sayfada olan seçenekleri getirelim.

 

 

 

 

 

Main.java dosyamızda eklemiş olduğumuz butonumuzu aşağıdaki gibi tanımlıyoruz

protected void onCreate(Bundle savedInstanceState) {

	super.onCreate(savedInstanceState);
	setContentView(R.layout.main);
	Button b= (Button) findViewById(R.id.button1);
	b.setOnClickListener(new OnClickListener() {
	        @Override
		public void onClick(View v) {
	        }
	});
}

Daha sonra butona tıkladığımızda çağıracağımız sayfamızı oluşturuyoruz. Bunun için Package Explorer penceresinden mevcut Package’ımız üzerinde sağ tıklayıp New->Class diyoruz. Yeni class’ın adını Preferences olarak veriyoruz.

Yeni sayfamızı oluşturduktan sonra, normal aktiviteden farklı olduğu için Preferences aktivitesini “import android.preference.PreferenceActivity;” ile import ediyoruz ve normal aktivitede olduğu gibi OnCreate eventini oluşturuyoruz. Bu işlem sonunda Preferences sayfamızdaki kod bloku aşağıdaki gibi olacaktır.

import android.os.Bundle;
import android.preference.PreferenceActivity;
public class Preferences extends PreferenceActivity {
	@Override
	protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
       }
}

Bu işlemden sonra da çağıracağımız XML dosyasını oluşturmak için New Android XML diyoruz. Resimdeki gibi adını prefs.xml Resource Type’ını Preference olarak seçiyoruz.

 

 

 

 

 

 

 

 

 

 

Prefs.xml dosyamızı oluşturduktan sonra, xml içinde aşağıdaki kod blokları ile iki tane checkbox oluşturuyoruz.

<?xml version="1.0" encoding="utf-8"?>
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android" >
    <CheckBoxPreference android:key="first"
        android:title="Seçenek 1"
        android:summary="Bu ilk seçenektir" />

    <CheckBoxPreference android:key="second"
        android:title="Seçenek 2"
        android:summary="Bu ikinci seçenektir" />
</PreferenceScreen>

Oluşturmuş olduğumuz xml dosyamızı Preferences.java dosyamıza yüklemek için Oncreate eventimizde aşağıdaki kodu yazmamız gerekecektir.

protected void onCreate(Bundle savedInstanceState) {
		super.onCreate(savedInstanceState);
		addPreferencesFromResource(R.xml.prefs);
	}

addPreferencesFromResource ile xml klasörü altında bulunan tanımlamış olduğumuz prefs.xml deki verileri yüklemiş oluyoruz. Bundan sonra ise, AndroidManifest.xml de sonradan eklemiş olduğumuz Preferences class’ımızı tanımlamamız gerekiyor. Bunu ise AndroidManifest.xml dosyamıza <activity android:name=”.Preferences” /> ifadesini yazarak yapıyoruz. “.Preferences”  oluşturmuş olduğumuz class’ımızdır.

Son olarak Main.java dosyamızda butonumuza tıkladığımızda Preferences sayfamızdaki verileri getirecek kodumuzu aşağıdaki şekilde yazıyoruz.

public void onClick(View v) {
	Intent intent= new Intent(Main.this,Preferences.class);
	startActivity(intent);
}

Intent tanımlamasını da yaptıktan sonra projemizi artık çalıştırabiliriz. Projemizi çalıştırdığımızda aşağıdaki resimdeki gibi ilk önce Seçenekler butonunun olduğu ekran karşımıza gelecektir. Seçeneklere tıkladığımızda oluşturmuş olduğumuz Preferences classımızı gelecektir.

 

Preference’ın en ön önemli özelliği Seçeneklerden herhangi birini check’ini kaldırdığınıza o kaydedilecektir. Bunun için tekrar bir kod yazmanıza gerek yoktur. Projenizi tekrar çalıştırdığınıza nasıl seçili bıraktıysanız o şekilde seçenekler karşınıza gelecektir :)