Soru & Cevap

SharedPreferences olayını nasıl uygulayabilirim ?

25.07.2014 - 12:04

İyi çalışmalar, OptionsMenu kısmında alert dialog içerisine 3 tane radio button yerleştirdim yazı fontu değişikliği için. Büyük , Normal ve Küçük diye. Benim istediğim, kullanıcı hangi seçeneği seçmişse bir daha ki değişikliğe kadar o boyut sabit kalsın. Yani Büyük yazı boyutunu seçmişse değiştirene kadar uygulamada geçerli boyut o olsun. Ek te kodu görebilirsiniz.

25 Görüntülenme

5 Cevap

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

picture-9388-1408276089.png
tahakirca
09.08.2014 - 08:18

Buradaki dersimde SharedPreferences hakkında detaylı bilgi ve örnek kullanım vermiştim. İşine yaraması dileğiyle..

http://www.mobilhanem.com/android-sharedpreferences-kullanarak-login-ekran-yapimi/

picture-2176-1429627808.jpg
bekirdursun
25.07.2014 - 11:22

int yazi_boyut = 0;

bölümünü global olarak üstte tanımla,

______________________________________________________________________

SharedPreferences sharedPreferences = getSharedPreferences(“Ayarlar”,MODE_PRIVATE);
yazi_boyut = sharedPreferences.getInt("yazi_boyutu", 0);

if(yazi_boyut==0){
     yazi_boyut = 15 // sözde standart boyutum bu olsun.
     textview.setTextSize(yazi_boyut);
}else{
     textview.setTextSize(yazi_boyut);
}

yukarıdaki kodu da onCreate içine ekle.

Muhammed Sami
25.07.2014 - 12:22
Teşekkürler sorunu çözdüm
Profile picture for user Marufoglu
Marufoglu
25.07.2014 - 12:41

Cevaplarınız için çok teşekkür ederim ama malesef uygulayamadım

 

Ulaş Sancak
25.07.2014 - 10:49
Neden uygulayamadığını yazmalısın. Nerede hata aldın ve hata neydi?
picture-2335-1379625106.jpg
rocxteady
25.07.2014 - 12:30

Kayıt:

[code]

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);

Editor editor = prefs.edit();

editor.put("boyutIntex", item);

editor.commit();

[/code]

 

Kayıttan okumak için:

[code]

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this); 

int index = prefs.getInt("boyutIndex", -1);

[/code]

 

index değerini dialog builder'ın checkedItem parametresine verirsin oluştururken.

 

Kolay gelsin.

 

picture-2176-1429627808.jpg
bekirdursun
25.07.2014 - 12:26

İlk açılışta sharedpreferences verileri boş olacağı için kontrol koyman gerekiyor;

int yazi_boyut = 0;

SharedPreferences sharedPreferences = getSharedPreferences(“Ayarlar”,MODE_PRIVATE);
yazi_boyut = sharedPreferences.getInt("yazi_boyutu", 0);

if(yazi_boyut==0){
     yazi_boyut = 15 // sözde standart boyutum bu olsun.
     textview.setTextSize(yazi_boyut);
}else{
     textview.setTextSize(yazi_boyut);
}

Daha sonra yazdığın switch içindeki case sonlarına aşağıdaki kodu ekle (settextsize sonrası, break öncesine);

SharedPreferences sharedPreferences = getSharedPreferences("Ayarlar",MODE_PRIVATE);
Editor editor = sharedPreferences.edit();
editor.putInt("yazi_boyutu", 10); // buradaki 10 yerine o case için belirlenen değer gelecek.
editor.commit();

 

Böylece uygulamanın 2.defa açıldığını düşünürsek; sharedpreferences aracılığı ile Ayarlar xml'inde bulunan yazi_boyutu satırındaki değeri alıp textview'in textsize'ına yüklemiş oluyoruz. Eğer ki boyutu değiştirmek istiyorsak da hem settextsize ile o an güncellemiş, hem de sharedpreferences'da bulunan veriyi güncellemiş oluyoruz.

Muhammed Sami
25.07.2014 - 12:34
Yorumunuz için teşekkürler. Ama bir sorum olacak uygulayamadım int yazi_boyut = 0; SharedPreferences sharedPreferences = getSharedPreferences(“Ayarlar”,MODE_PRIVATE); yazi_boyut = sharedPreferences.getInt("yazi_boyutu", 0); if(yazi_boyut==0){ yazi_boyut = 15 // sözde standart boyutum bu olsun. textview.setTextSize(yazi_boyut); }else{ textview.setTextSize(yazi_boyut); } Bu kısmı adım adım anlatma durumunuz olabilir mi ? Mesela getSharedPreferences(“Ayarlar”,MODE_PRIVATE); burda ayarlar dediği yere ne gelecek ? xml ise "Syntax error on tokens, ArgumentList expected instead" bu hatayı alıyorum