Soru & Cevap

CustomListview veri ekleme sorunum ...

25.02.2016 - 04:00

Arkadaşlar Merhaba

birtane customlistview oluşturdum internetten json olarak çektiğim veriyi listiev bi ekliyo bi eklemiyor sorunu bir türlü çözemedim yardım ederseniz sevinirim. 

 

Kod kısmında nerde hata olduğunu yazdım

Kodlarım: 

package vehbiakdogan.com.nobetcieczanebul;

import android.app.ProgressDialog;
import android.os.AsyncTask;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.support.v7.widget.Toolbar;
import android.util.Log;
import android.widget.ListView;
import android.widget.Toast;

import org.apache.http.HttpEntity;
import org.apache.http.HttpResponse;
import org.apache.http.StatusLine;
import org.apache.http.client.HttpClient;
import org.apache.http.client.methods.HttpGet;
import org.apache.http.impl.client.DefaultHttpClient;
import org.apache.http.util.EntityUtils;
import org.json.JSONArray;
import org.json.JSONException;
import org.json.JSONObject;

import java.io.IOException;
import java.util.ArrayList;
import java.util.List;

import static java.lang.Thread.sleep;

public class Anasayfa extends AppCompatActivity {
    final List<Eczane> eczaneler=new ArrayList<Eczane>();
    final static String URI = "http://vehbiakdogan.com/androidProjeler/nobetciEczane/nobetciEczanecek.php";
    ListView eczaneListesi;
    JSONObject json;
    ProgressDialog pDialog;
    Toolbar toolbar;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_anasayfa);
        toolbar = (Toolbar) findViewById(R.id.toolbar);
        setSupportActionBar(toolbar);

        toolbar.setTitle("Nöbetçi Eczaneler");
        toolbar.setTitleTextColor(R.color.beyaz);


        eczaneListesi = (ListView) findViewById(R.id.listView);
       // eczaneler.add(new Eczane("Erzurum", "Merkez"));

        pDialog = new ProgressDialog(Anasayfa.this);
        pDialog.setTitle("Lütfen bekleyiniz.");
        pDialog.setMessage("Nöbetçi Eczaneler Çekiliyor...");
        pDialog.setIndeterminate(true);
        pDialog.setCancelable(false);
        pDialog.show();
        new AsyVeriCek().execute("baslik", "adres");
        eczaneListesi.setAdapter(new EczaneAdapter(Anasayfa.this, eczaneler));

 

    }

    protected JSONObject eczaneOku() throws JSONException, IOException {

        HttpClient client = new DefaultHttpClient();
        HttpGet get = new HttpGet(URI); // get sorgusu oluştur
        HttpResponse response = client.execute(get); // cevap al
        StatusLine durum = response.getStatusLine(); // sayfa durumu
        if(durum.getStatusCode() == 200) {
            HttpEntity e = response.getEntity(); // veriyi aldık
            String data = EntityUtils.toString(e); // tüm verileri aldık

            JSONObject veri = new JSONObject(data); // ilk elemanı aldık
            return veri;
        }else {
            Toast.makeText(getApplicationContext(),"Sayfa Açılamadı",Toast.LENGTH_SHORT).show();
        }

        return  null;
    }

    public  class AsyVeriCek extends AsyncTask <String,String,String> {

 

        @Override
        protected String doInBackground(String... params) {
            try {
                json = eczaneOku();
                for(int i=1;i<json.length();i++) {
                    JSONObject icerik = json.getJSONObject(""+i+"");
                    String data = icerik.getString(params[0]);
                    String data2 = icerik.getString(params[1]);

                    Log.i("dd",data);
                    Log.i("dd2",data2);

                    // burda loglarda veriler geliyor ama alttaki eczaneler.add kısmında bazen ekliyor bazen eklemiyor.
                    eczaneler.add(new Eczane(data, data2));
                }


               pDialog.dismiss();


                return null;
            } catch (IOException e) {
                e.printStackTrace();
            } catch (JSONException e) {
                e.printStackTrace();
            }
            return null;
        }

        @Override
        protected void onPostExecute(String data) {

        }
    }

}

 

 

19 Görüntülenme

1 Cevap

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

picture-11052-1576825910.jpg
alikarakoc
25.02.2016 - 05:50

Merhaba Vehbi,

Bazen ekliyor bazen eklemiyor sorununu çözebilmek biraz güç olur.

Kodlarına baktım fakat ne kadar sağlıklı bakabilmişimdir bilemiyorum debug edip sağlıklı çalıştığını net bir şekilde görmekte fayda var.

Belki android in Volley sınıfını kullanarak işlemlerini yaparsan sorunun çözülebilir ben senin yönteminle daha önce çalışmadım.

http://developer.android.com/training/volley/index.html Sınıfını incelemeni tavsiye ederim.

Vehbi
25.02.2016 - 05:54
Teşekkür Ederim deneyeceğim.