Soru & Cevap

Custom ListView internetten gelen veriyi ekleme

27.03.2016 - 08:51

NOT: Sorunum internetten çektiğim verileri Custom listView'e eklemekte (İnternetten verileri çekmekte bir sorun bulunmamaktadır).

Bir adet custom listview oluşturdum.Mysql veritabanı kullanıyorum. Php sayfasında listelenen verileri JSON parametresi ile çekiyorum,bunlarda sıkıntı yok, ve değişkene atıyorum.Fakat değişken içerisine attığım verileri Custom ListView'e ekleyemiyorum. Sadece bir tanesi ekleniyor oda mysql veritabanındaki son kayıt. Atıyorum 5 adet kayıt var ise sadece 5.inci (son) kaydı listeye aktarıyor diğer (1,2,3,4) kayıtları aktarmıyor. 

Söyle ki kodlar ile göstereyim :

//Gelen veri tanımlamalarım:

String alan1,alan2,alan3,alan4,alan5,alan6,alan7,alan8,alan9,alan10;

//Siteden verileri çeken döngü:
for (int i = 0; i < veriler.length(); i++)

{
JSONObject veriler= veriler.getJSONObject(i);
alan1 = veriler.getString("gelen_veri1");
alan2 =veriler.getString("gelen_veri2");
alan3= veriler.getString("gelen_veri3");
alan4= veriler.getString("gelen_veri4");

..........................................................

alan10= veriler.getString("gelen_veri10");

//ekle fonksiyonu

ekle();

}

//sonra ekle sınıfı;


public void ekle()

{
final String [] isim= {alan1};
String [] takım= {alan2};
int[] resim= {alan3}; //sadece bu 2 alan ve 1 resim listview'e eklenecek.

adapter = new Adapter(this,isim,takım,resim); //Adapter diye tanımlanan nesne java sınıfı.
listView.setAdapter(adapter); //adapteri listview'e ekliyor.

}

 

Bu kodlar ile sadece 5 kayıttan sonuncusu gösteriliyor. Nerede eksik var sizce? Yardımcı olabilirseniz çok sevinirim, kaç gündür bununla uğraşıyorum.

(Kodlar sorunsuz çalışıyor. Kısa olsun diye sadece alakalı kodları yazdım. Tek sorun listview'e gelen verileri eklemekte..)

 

 


 

48 Görüntülenme

3 Cevap

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

picture-11995-1459349701.jpg
mhmtozcann
28.03.2016 - 01:43

Bunun için Github hesabımda örnek bir uygulama mevcuttu linki: https://github.com/mhmtozcann/turkcell_gelecegi_yazanlar_blog  Buradan CustomAdapter tanımlaması ve xml dizaynını kendinize göre ayarlayıp kullanabilirsiniz. Oradaki mantığı anladıktan sonra zaten başka uygulamalarınız da da rahatça kullanabilirsiniz.

picture-28812-1452251417.jpg
umutonur
27.03.2016 - 10:46

JSONObject veriler = veriler.getJSONObject(i);

Bu kısım kodun orjinalinde de böyle mi yoksa buraya yapıştırırken yanlışlıkla mı yaptın?

Eğer orjnali böyleyse 

JSONObject veriler2 = veriler.getJSONObject(i);
alan1 = veriler2.getString("gelen_veri1");
alan2 = veriler2.getString("gelen_veri2");

...

şeklinde değiştirerek deneyebilir misin?

Volkan Köroğlu
27.03.2016 - 10:56
JSON' veri çekmede bir sıkıntı yok, çekilen verilerin doğruluğunu görmek için her döngüde toast mesaj ile mesela(alan1'i) ekranda gösteriyorum ve Mysqldeki alan1 verilerini sorunsuz sırasıyla gösteriyor, fakat listview'e aktarma yaparken sadece Mysqldeki son sıradaki kaydı ekliyor. Sorunum bu. JSON kodlarında herhangi bi sıkıntı bulunmamakta. İsterseniz skype veya teamviewer'den projemi ve hatamı gösterebilirim. Skype : vlkoroglu
Umut ONUR
28.03.2016 - 11:45
Pardon kardeşim. Ben soruyu başka türlü algıladım kusura bakma :) Soruya gelecek olursak, anladığım kadarıyla burdaki Adapter() sınıfını kendin oluşturmuşsun. Fakat izlediğin yöntemde bir yanlışlık var. Senin yazdığın kodda Her yeni JSON verisi çekildiğinde ekle() metodu çalışıyor. Fakat bu ekle() metodu her çalıştığında yeni bir Adapter() nesnesi oluşuyor. Senin yanılgıya düştüğün olay şu; setAdapter(adapter) metodu adapteri eklemez. Adapter'i değiştirir. Yani buda demek oluyor ki; ekle() metodu her çalıştığında yeni bir Adapter() nesnesi oluşup listView'in adapter'iyle değiştiriliyor. sonuç olarakta en son çalışan ekle() metodunda hangi Adapter() nesnesi belirtilmişse listende o eleman çıkıyor.. Senin yapman gereken şu; JSON ile çektiğin verileri bir dizi haline getirerek oluşturacağın Adapter'de o şekilde kullanmalısın..
Umut ONUR
28.03.2016 - 11:46
konuyla ilgili şu derse bakabilirsin : https://gelecegiyazanlar.turkcell.com.tr/konu/android/egitim/android-301/listview-ozellestirme
Profile picture for user azatgoktas
azatgoktas
27.03.2016 - 10:41

Kodun tam halini githuba atıp yollayabilir misin?

Volkan Köroğlu
27.03.2016 - 10:56
Kodun tam halini atamam ama dilerseniz skype veya teamviewer'den ulaşıp projeyi birlikte inceleyebiliriz. Skype : vlkoroglu