Merhabalar,
Söylediğiniz SharedPreferences'te mümkündür, şöyle ki kendinizce bir string patternı belirlemeniz gerekmektedir. Örneğin;
Sayilar değişkeninde uygulama açıldığında oluşturduğunuz sayı olsun. Yalnız int(Integer) veri tipinde değer tutamazsınız bu yöntemde.
Aşağıda verdiğimiz örnekte normalde String değişkenine nasıl normal bir değer tanımlıyorsak, öylesine yazıyorum.
String Sayilar = "1";
Şimdi sizin istediğiniz oluşturduğunuz iki farklı rakamı da Sayilar değişkenine tanımlıyoruz.
String Sayilar = "1,2";
Burada yaşayacağınız problem ve çözmeniz gereken durum şunlardır.
- Sayilar değişkenine bir veri kayıt etmeden önce string düzenleme işlemi yaparak(Split ya da Contains işlemi), kayıt edeceğiniz veri değişkenin içinde var mı yok mu kontrol etmek.
- Eğer Sayilar değişkeni içerisinde kayıt edeceğiniz yeni rakam yok ise ve kayıt etmek istiyorsanız;
String Sayilar += ",4";
Gibi bir String birleştirme ifadesi ile String'inizin son hali şöyle olacaktır.
String Sayilar = "1,2,4";
Stringde "Contains" ("Contains, Türkçe'de 'İçeriyor mu?' anlamına gelmektedir.") methodu vardır, bu şu işe yarar, "sana arattıracağım veri, şu değişkenin içinde var mı?".
Kullanımı şu şekildedir;
Sayilar.contains("4");
Yukarıda şunu demek istedik, Sayilar değişkenin içinde "4" var mı? Var ise True yok ise False döndürecektir. Method boolean değer döndürüyor bu arada, şu şekilde kullanabilirsiniz;
if(Sayilar.contains("4")){
//True döneceği için buraya girecek, gerekli işlemleri yapın.
}else{
//4 içermiyorsa buraya girecektir, gereken işlemleri yapın.
}
İstediğiniz cevabı tam olarak vermiyorum çünkü String birleştirme, String çözme gibi işlemleri kendiniz araştırmanız, anlamanız ve kavramanız gerekiyor sizin gelişiminiz açısından.
Sorunuz olursa iletişime geçmekten çekinmeyin lütfen.
İyi çalışmalar.
Düzeltme: Yukarıda verdiğim örnekte sadece 0'dan 9'a kadar olan sayıları kullanarak uygulayabilirsiniz çünkü Sayilar değişkeninde "0,1,34" olsaydı, yani 4 olmasaydı ama siz Sayilar.contains("4") olarak sorgu yapsaydınız gene True dönecekti çünkü 34 sayısının içinde de 4 rakamı geçiyor. Eğer 9'dan büyük sayıları da içerecekse "Split" işlemi tam size göre, yukarıda biraz mantık kavramış olursunuz, "Split" işlemini aratarak ve denemeler yaparak sorununuzu çözebilirsiniz.
Hocam kusura bakmayın ama bu ameleliktir ve dalga gecilir, dediğiniz gibi 0 dan 9 a kadar kullanabilirsiniz ve sadece integer kullanabilirsiniz bununla .
+ veritabanındaki işlemler (veritabanı baglantısı kurmak haricinde) çok daha hızlıdır.