Blog Single

PreferenceActivity nedir, ne işe yarar ?

  • Uygulamanızda belirli seçenekleri barındıran ve bu seçeneklere farklı Activity'ler üzerinden erişmek istediğiniz CheckBox verilerine true/false(boolean), 0/1, string, integer gibi değerlerin algılanabilmesine olanak sağlayan bir Activity çeşitidir.
  • Preference, SharedPreference üzerinden get ve set değerleri döndürme işlemini yürütür.
  • Özet geçecek olursak; Uygulamanızda bir ayar sayfanız olduğunu düşünün, Bildirimleri aç/kapat gibi bir CheckBox opsiyonu olabilir, yada telefon numaranızı, mail adresinizi gibi bilgilerinizi uygulama her açıldığında girmek istemediğiniz ve uygulama hafızasında kalmasını istediğiniz verileriniz olabilir. Uygulama kapanıp yeniden açılsa dahi, uygulama bu kayıtlarınızı kendi belleğinde muhafaza etmesini sağlayacaktır.

Örneğimize başlıyoruz;

  • Öncelikle Main Layout'u için,
    • btnPref ve btnOku isimlerinde iki adet buton oluşturunuz.
  • MyPreff adlı bir public class oluşturunuz;
    • Mirası PreferenceActivity 'den alacak şeklilde düzenleyiniz.
    • public class MyPreff extends PreferenceActivity
  • MainActivity Import kısmına, aşağıdakileri tanımlayınız;
    • import android.content.SharedPreferences;
    • import android.preference.PreferenceManager;
  • Buton tanımlamalarını MainActivity onCreate metodu içerisinde yapınız;
    • btnPref=(Button) findViewById(R.id.btnPref);
    • btnOku =(Button) findViewById(R.id.btnOku);
  • onCreate methodundan önce global değişken alanı olarak, aşağıdaki nesneleri ekleyiniz;
    • Button btnPref;
    • Button btnOku;
  • ClickListener'ler ile butona tıklanma olaylarını yakalayalım;
    • btnPref.setOnClickListener( new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              Intent myint= new Intent(getBaseContext(),MyPreff.class);
              startActivity(myint);
      
          }
      });
    • btnOku.setOnClickListener( new View.OnClickListener() {
          @Override
          public void onClick(View v) {
              SharedPreferences myprefs = PreferenceManager.getDefaultSharedPreferences(MainActivity.this);
              Toast.makeText(MainActivity.this, "ilk secenek -->" + myprefs.getBoolean("first",false),Toast.LENGTH_LONG).show();
              Toast.makeText(MainActivity.this, "ikinci secenek -->" + myprefs.getBoolean("second",false), Toast.LENGTH_LONG).show();
              Toast.makeText(MainActivity.this, "isim -->" + myprefs.getString("name","null"), Toast.LENGTH_LONG).show();
          }
      });
    • Kodları açıklayacak olursam;

      • btnPref butonumda, MyPreff.class dosyamı yani Activity dosyamı açmasını söyledim.

      • btnOku da ise, 2 adet Preference oluşturup isimlerini first ve second olmasını ve varsayılan değerlerinin false olmasını, Boolean tipinde veri dönmesi gerektiğini belirttim.

      • Preference, veri saklama işlemini SharedPreference ile uygulama içerisinde saklamayı sağlamakta, saklanan veriler uygulama dışarısına çıkamamakta ve başka uygulamalar tarafından okunamamaktadır.

  • MyPreff class'ımız için yazmamız gereken kod;

    • @Override
          protected void onCreate(Bundle savedInstanceState) {
              super.onCreate(savedInstanceState);
                addPreferencesFromResource(R.xml.preference);
          }

    • preference.xml adlı dosya içerisinde Preference Screen oluşturarak değiştirilebilir olacak verilerimizi tanımlanmasını sağlıyoruz.

    • res > xml > preference.xml dosyası oluşturunuz ve aşağıdaki kodları yazınız.

    • AndroidManifest üzerinde .MyPreff için activity tanımlaması yapmayı unutmayınız.
Bu makaleyi paylaşın:
İstanbul'da yaşıyorum.Web üzerinde Frontend/Backend Geliştirmenin yanı sıra, Android Geliştirme, PHP/ASP.NET, C# Yazılım Uzmanlığı ve Java konuları işliyorum. Kod Şiirdir, onları seviyorum.

Bir yorum bırakın