Soru & Cevap

SharedPreferences Checkbox Tıklama Ve Button Gizleme ...

20.07.2019 - 09:16

Merhaba arkadaşlar;

Benim A ve B adında iki adet Activity var. A'da bir tane Checkbox var, B'de ise bir tane Button var. Ben A'daki Chechkbox'u tıkladığımda B'deki Button un görünmez olmasını istiyorum. Tiki kaldırınca ise görününür hale gelmesini istiyorum. Ve en önemlisi bunu sharedpreferences ile kaydetmek istiyorum. Yani programdan çıkıp tekrar girdiğimde en son yaptığım işlemin karşıma çıkmasını istiyorum. Bana yardımcı olur musunuz? Şimdiden teşekkürler.

165 Görüntülenme

2 Cevap

Sitedeki sorulara cevap verebilmek için giriş yapın ya da üye olun.

picture-116281-1539261380.jpg
furkankayalı
27.07.2019 - 11:31

Merhaba,

Bu işlem için yapman gereken boolean bir değeri kaydedip tekrar okumak olacaktır. Aşağıdaki 3 adımı izleyerek SharedPreferences'a yazma ve okuma işlemi yapabilirsin.

Adım 1: Nesne Oluşturma (Bu adım 2 activity içinde yapılmalı)


        SharedPreferences sp = context.getSharedPreferences("isim", MODE_PRIVATE);

"isim" alanına istediğin bir değer girebilirsin ama tavsiyem uygulamanın ismi olacaktır.

Adım 2: SharedPreferences'a yazma ( Checkbox'u dinleyerek durumu değiştiğinde bu kodu çalıştırman gerekecek);

        sp.edit().putBoolean("isChecked",true).apply();

metodun 2. parametresine yani true alanına checkboxun durumunu vermelisin.

Adım 3: SharedPreferences'tan okuma (burdan gelen duruma göre butonunu visible/invisible yapmalısın)

        sp.getBoolean("isChecked",false);

metodun 2. parametresi default değerdir eğer "isChecked" isimli bir kayıt bulunamaz ise false dönecektir.

 

Bu adımları izleyerek uygulaman kapansa bile tekrar açıldığında butonunun görünürlüğünü istediğin şekilde ayarlayabilirsin.

Umarım yardımcı olmuştur.

Fatih Demir
27.07.2019 - 10:24
Teşekkürler kardeşim...
Profile picture for user mehmet.karacan
mehmet.karacan
20.07.2019 - 07:08


Merhabalar,


Öncelikle algoritma mantığı aynıdır. Bu yüzden C# kodu ile yazıyorum, onu istediğin bir dile çevirebilirsin. 


if (checkBox1.checked == true) //eğer checkBox1 seçili ise
{
button1.Visible = false; //button1'i gizle
}
else //değilse
{
button1.Visible = true; //button1'i görünür yap
}


Bu şekilde checkBox'un seçili ise button1'in gizlenir, seçili değilse görünür olur.


Eğer kullanıcının son yaptığı işlemi göstermek istiyorsan veritabanında bir tablo oluştur ve bu işlemleri alanlarda sakla.
Yani, USERSET tablosu olsun ve burada kullanıcının bulunduğu bir US_KEY olsun bir de BUTTONSEC alanın olsun. Button'u gizlediğin zaman hemen git ve BUTTONSEC alanını E yap. Daha sonra kullanıcı giriş yaptığında USERSET.BUTTONSEC = 'E' ise button1'i gizle.