shared preferences aynı değişken için her zaman üzerine yazacaktır bunu değiştiremezsin. Veritabanı tam da yapmak istediğin şey için var
https://developer.android.com/traini...databases.html
Eğer ben bunlardan bişey anlamıyorum dersen önce database mantıgını ogrenmen işini
kolaylaştırabilir.
https://www.w3schools.com/sql/default.asp
Shared preferences ın kullanım amacı genelde tek kontrollü işler için vardır mesela uygulama ilk acıldıgında kamera izni yoktur bir shared preferences degiskeni false yaparsın ve izin almak icin sorarsın. izni aldıgın zaman o degiskeni true yaparsın, o değer true iken de izni asla sormazsın cunku daha onceden izin verilmistir
Şuan sqllite videolarını izlemeye başladım

--R10.NET; Flood Engellendi -->-> Yeni yazılan mesaj 00:05:20 -->-> Daha önceki mesaj 00:04:01 --
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.
Bu kadar detaylı yazdığınız, zaman ayırdığınız için teşekkürler. Bir önceki arkadaşın veritabanı önermesinden dolayı onu izlemeye başladım eğer yapamazsam sizin yorumunuzu inceleyip araştırıp yapmaya çalışacağım. Tekrardan teşekkürler.