2016-04-13 38 views
-1

'da görüntülenmiyor, json kullanarak veri tabanından veri almaya çalışıyordum ve veriyi başarılı bir şekilde aldım ancak liste listemize görüntülenmiyor.Json verileri Liste Görünümü

04-13 20:01:42.205 5230-5252/? I/Sucess: {"keranjang":[{"id_keranjang":"1","kd_inventaris":"AIKC100-2","judul_buku":"judul_buku"}],"success":1,"message":"Ambil data di tabel keranjang sukses"} 
04-13 20:01:42.205 5230-5252/? W/System.err: org.json.JSONException: No value for id_keranjang 
04-13 20:01:42.205 5230-5252/? W/System.err:  at org.json.JSONObject.get(JSONObject.java:389) 
04-13 20:01:42.205 5230-5252/? W/System.err:  at org.json.JSONObject.getInt(JSONObject.java:478) 
04-13 20:01:42.205 5230-5252/? W/System.err:  at com.example.yong.p_akakom.PageFragment2$Ambil_Buku_Keranjang.doInBackground(PageFragment2.java:86) 
04-13 20:01:42.205 5230-5252/? W/System.err:  at com.example.yong.p_akakom.PageFragment2$Ambil_Buku_Keranjang.doInBackground(PageFragment2.java:69) 
04-13 20:01:42.206 5230-5252/? W/System.err:  at android.os.AsyncTask$2.call(AsyncTask.java:295) 
04-13 20:01:42.206 5230-5252/? W/System.err:  at java.util.concurrent.FutureTask.run(FutureTask.java:237) 
04-13 20:01:42.206 5230-5252/? W/System.err:  at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:234) 
04-13 20:01:42.206 5230-5252/? W/System.err:  at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1113) 
04-13 20:01:42.206 5230-5252/? W/System.err:  at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:588) 
04-13 20:01:42.206 5230-5252/? W/System.err:  at java.lang.Thread.run(Thread.java:818) 

AsyncTask:

class Ambil_Buku_Keranjang extends AsyncTask<String,String,String> { 
     ArrayList<HashMap<String, String>> daftarBukuKeranjang = new ArrayList<HashMap<String, String>>(); 
     @Override 
     protected String doInBackground(String... params) { 
      String id = params[0]; 
      List<NameValuePair> pairs = new ArrayList<NameValuePair>(); 
      pairs.add(new BasicNameValuePair(TAG_ANGGOTA,id)); 
      json = jsonParser.makeHttpRequest(URL,"POST",pairs); 
      try{ 
       buku_keranjang = json.getJSONArray("keranjang"); 
       success = json.getInt(TAG_SUCCESS); 
       if(success == 1){ 
        Log.d("Success","Sukess tampilkan data buku keranjang"); 
        Log.i("Sucess",json.toString()); 
        for(int i=0;i<buku_keranjang.length();i++){ 
         JSONObject c = new JSONObject(); 
         HashMap<String,String> map = new HashMap<String,String>(); 
         int id_keranjang = c.getInt(TAG_KERANJANG); 
         String kd_inventaris = c.getString(TAG_INVENTARIS); 
         String judul_buku = c.getString(TAG_JUDUL); 

         map.put(TAG_KERANJANG,String.valueOf(id_keranjang)); 
         map.put(TAG_INVENTARIS,kd_inventaris); 
         map.put(TAG_JUDUL,judul_buku); 

         daftarBukuKeranjang.add(map); 
        } 
       } 

      }catch (JSONException e){ 
       e.printStackTrace(); 
      } 
      return TAG_MESSAGE; 
     } 

     @Override 
     protected void onPostExecute(String s) { 
      if(s != null && success==1){ 
       adapter = new SimpleAdapter(getActivity().getApplicationContext(),daftarBukuKeranjang, 
         R.layout.list_keranjang,new String[]{TAG_KERANJANG,TAG_INVENTARIS,TAG_JUDUL}, 
         new int[]{R.id.id_keranjang,R.id.kd_inventaris_keranjang,R.id.judul_buku_keranjang}); 
       listPesan.setAdapter(adapter); 
      } 
     } 
    } 

Ve liste düzeni:

<?xml version="1.0" encoding="utf-8"?> 
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    android:layout_width="match_parent" android:layout_height="match_parent"> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:id="@+id/id_keranjang" 
     android:layout_alignParentTop="true" 
     android:layout_alignParentStart="true" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:id="@+id/kd_inventaris_keranjang" 
     android:layout_below="@+id/id_keranjang" 
     android:layout_alignParentStart="true" /> 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:textAppearance="?android:attr/textAppearanceMedium" 
     android:id="@+id/judul_buku_keranjang" 
     android:layout_below="@+id/kd_inventaris_keranjang" 
     android:layout_alignParentStart="true" /> 
</RelativeLayout> 

lütfen teşekkürler .... yardım ..

+0

cidden? JSONObject c = yeni JSONObject(); '(boş json nesnesinin oluşturulması) o zaman' c.getInt (TAG_KERANJANG) '' bekledikleriniz nedir? ... tabii ki yeni bir – Selvin

+0

@Selvin oluşturma değil bir dizi bir nesne almalısınız evet benim kötü ... teşekkürler –

+0

cevap kabul ettiğin kadar yanlış olduğunu kabul ettiğin gibi –

cevap

1

için içeride bu

JSONObject c = buku_keranjang.getJSONObject(i); 
+0

cevabını kabul ettiyse, cevabınız hata parçasını tamamen göz ardı etmiş ve sadece bir öneridir –

+0

@Surya Prakash Kushawah Sorunumu çözme yardımı için teşekkürler –

2
JSONObject c = new JSONObject(); 
burada

logcat olduğunu

Döngü için bu satır yanlış. Diziden nesneyi alırken yeni nesne oluşturmazsınız. Bunun yerine json yanıt olarak mevcut değildir sizin hata günlüğü tuşu olarak döngü

for(int i=0;i<buku_keranjang.length();i++){ 
        JSONObject c =buku_keranjang.getJSONObject(i); 
        HashMap<String,String> map = new HashMap<String,String>(); 
        int id_keranjang = c.getInt(TAG_KERANJANG); 
        String kd_inventaris = c.getString(TAG_INVENTARIS); 
        String judul_buku = c.getString(TAG_JUDUL); 

        map.put(TAG_KERANJANG,String.valueOf(id_keranjang)); 
        map.put(TAG_INVENTARIS,kd_inventaris); 
        map.put(TAG_JUDUL,judul_buku); 

        daftarBukuKeranjang.add(map); 
    } 
+0

@Viviek Mishra evet, sorun bu ..tusks .. –

+0

cevabını –

0

değişikliğin kodu gibi olacak. Bu tür hataları önlemek için isteğe bağlı dize kullanabilirsiniz. aşağıdaki gibi =>

 for(int i=0;i<buku_keranjang.length();i++){ 
          JSONObject c = buku_keranjang.getJSONObject(i); 
          HashMap<String,String> map = new HashMap<String,String>(); 

// see here 
    int id_keranjang = c.optInt(TAG_KERANJANG); 
          String kd_inventaris = c.optString(TAG_INVENTARIS); 
          String judul_buku = c.optString(TAG_JUDUL); 

          map.put(TAG_KERANJANG,String.valueOf(id_keranjang)); 
          map.put(TAG_INVENTARIS,kd_inventaris); 
          map.put(TAG_JUDUL,judul_buku); 

          daftarBukuKeranjang.add(map); 
         }