Soru & Cevap

Listview İtem'ını başka bir xml ye kaydetme (Favoriler)

22.08.2014 - 01:02

Merhaba, Arkadaşlar.

Uygulamamda favoriler özelliği eksik ve bunu eklemek istiyorum ama bu konuda eksiklerim var.

Bu benim yapmaya çalıştığım işlem.

[code]

@Override
    public boolean onContextItemSelected(MenuItem item) {
      
      
      AdapterContextMenuInfo info = (AdapterContextMenuInfo) item.getMenuInfo();

          int index = info.position;
              HashMap<String, String> selectedItem = catalogList.get(index);

              SharedPreferences pref = getSharedPreferences("Favoriler", Context.MODE_PRIVATE);

              switch (item.getItemId()) {

              case R.id.itemFavori:
                  String Fav = selectedItem +"";
                  Editor editor = pref.edit();
                  editor.putString("item",Fav );
                  editor.commit();
                  Toast.makeText(deneme.this, "Favorilere Eklendi", Toast.LENGTH_LONG).show();
                  return true;


              default:
                  return super.onContextItemSelected(item);
              }
  }

[/code]

 Ben Listview item'ını SharedPreferences'e kaydetmeye çalıştım ve daha sonra bu kayıtları ayrı bir activity ile çekmek istedim.

 

Bu konu ile ilgili örnek linkler veya yardımcı olabilecek arkadaşlar, yardımınızı beklemekteyim.

23 Görüntülenme

3 Cevap

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

Profile picture for user onur.kilic
onur.kilic
24.08.2014 - 10:54

Aslında Ahmet'de sharedpreferences'ın yapmak istediğin favoriler işlemi için çok uygun olmadığından bahsetmiş.

Sharedpreferences yerine veritabanı kullanman çok daha doğru olacaktır. 

 

İlgili tutorial  http://www.vogella.com/tutorials/AndroidSQLite/article.html

picture-1372-1408467635.jpg
ahmtbrk
22.08.2014 - 03:19

SharedPreferencesi bir ayar sayfası olarak düşünebilirsiniz.Bu yüzden aynı key'e sahip şeyleri sürekli günceller üstüne yazar.Yani sürekli append olan bi veri eklemek mantıklı değil.Bu yüzden sqlite kullanmanızı tavsiye ederim.

orda bu şablona uygun bi tablo oluşturup aynı alanları eklersiniz sınırsız kayıt girersiniz.

http://www.oguzozkeroglu.com/android-shared-preferences/

SharedPreferencesten veri okuma tarafına buradan göz atabilirsiniz ama sizin yapınız için uygun bir şey değil.

idris
22.08.2014 - 03:29
Anladım, Teşekkür ederim, Ahmet bey.
Profile picture for user AKI
AKI
22.08.2014 - 02:57

Ahmet, bey

listview item'ım bu.

[code]

  <item>
    <id>2</id>
    <isim>Yab</isim>
    <url1>https://dl.dropboxusercontent.com/s/auibcfa9tkxvdxm/yab.png</url1>
    <thumb_url>https://dl.dropboxusercontent.com/s/auibcfa9tkxvdxm/yab2.png</thumb_url>
    <kalite_url>https://dl.dropboxusercontent.com/s/auibcfa9tkxvdxm/yab3.png</kalite_url>
  </item>

[/code]

 

 

sharedpreferences'de kayıtlı hali

[code]<?xml version='1.0' encoding='utf-8' standalone='yes' ?>
<map>
<string name="item">
{thumb_url=https://dl.dropboxusercontent.com/s/auibcfa9tkxvdxm/yab.png,
id=2,
url1=https://dl.dropboxusercontent.com/s/auibcfa9tkxvdxm/yab2.png,
kalite_url=https://dl.dropboxusercontent.com/s/auibcfa9tkxvdxm/yab3.png,
isim=Yab}
</string>
</map>[/code]

 

Item'ı Context menü ile kayıt ediyorum. Sharedpreferences de ki kayıtlı hali ise üsttekidir. Problemim ise sharedpreferences'den nasıl çekerim verileri ve bir diğer problem ise farklı farklı item'ları favorilere eklemek istediğim zaman sharedpreferences'de ki tek item sürekli güncelleniyor, yeni girdi olarak girmiyor.