List view adapter Json hatası

Merhaba , listviewe php üzerinden json kullanarak mysql deki bilgileri adapte ediyorum. sıkıntı şu ki veri varsa listeliyo yoksa uygulamayı kapatıyo. yani eğer veri tabanında veri yoksa hata veriyo inatla tüm satırlarda try catc kullandım ama yine aynı. log tuttum ama log a düşmeden ;

java.lang.StringIndexOutOfBoundsException: length=3;

bu hatayı veriyo ve kapanıyo. ne yapmalıyım ?

    0

    Sara

    01 Mayıs 2016

    Merhaba php kodunuzda eğer liste boş ise bir değer döndürebilirsiniz. if le Jsonresponse de bu değeri kontrol edip eğer veri yok ise buna göre bir işlem yapmalısın. Ben şöyle birşey yapmıştım try { JSONObject myJson = new JSONObject(json); sonuc = myJson.getInt(TAG_SUCCESS); sonucmesaji = myJson.getString(TAG_MESSAGE); if (sonuc == 1){ // products found // Getting Array of Products JSONArray jsonHastalar = myJson.getJSONArray(TAG_HASTA); // looping through All Products for (int i = 0; i < jsonHastalar.length(); i++) { JSONObject c = jsonHastalar.getJSONObject(i); // Storing each json item in variable hastaTC[i] = c.getString(TAG_HASTATC); hastaAd[i] = c.getString(TAG_HASTAAD); hastaSoyad[i] = c.getString(TAG_HASTASOYAD); dogumTarihi[i] = c.getString(TAG_DOGUMTARIHI); hastaTel[i] = c.getString(TAG_HASTATEL); hastaAdres[i] = c.getString(TAG_HASTAADRES); aciklama[i] = c.getString(TAG_ACIKLAMA); hastalar.add(new HastaTip(hastaAd[i]+" "+hastaSoyad[i],hastaTC[i] )); } } else { // no products found // Launch Add New product Activity hastalar.add(new HastaTip("Kayıtlı hasta yok!","" )); } } catch (JSONException e) { e.printStackTrace(); }  

    0

    Mehmet Kurtgöz

    30 Nisan 2016

    private class JsonReadTask extends AsyncTask<String, Void, String> { @Override protected String doInBackground(String... params) { HttpClient httpclient = new DefaultHttpClient(); HttpPost httppost = new HttpPost(params[0]); httppost.setHeader("Content-type", "application/json"); try{ HttpResponse response = httpclient.execute(httppost); jsonResult = inputStreamToString( response.getEntity().getContent()).toString(); }catch(ClientProtocolException e){ e.printStackTrace(); } catch (IOException e){ e.printStackTrace(); } return null; } private StringBuilder inputStreamToString(InputStream is){ String rLine =""; StringBuilder answer = new StringBuilder(); BufferedReader rd = null; try { rd = new BufferedReader(new InputStreamReader(is, "utf-8"), 8); } catch (UnsupportedEncodingException e) { e.printStackTrace(); } try{ while((rLine = rd.readLine()) != null){ answer.append(rLine); } }catch(IOException e){ Toast.makeText(getApplicationContext(), "error ..." + e.toString(), Toast.LENGTH_LONG).show(); } return answer; } @Override protected void onPostExecute(String result){ ListDrwaer(); // we will create it later } } public void accessWebService(String url){ JsonReadTask task = new JsonReadTask(); try { task.execute(new String[]{url}); } catch (StringIndexOutOfBoundsException e) { Log.d("HATA 1",e.getMessage()); } } public void ListDrwaer (){ try{ JSONObject jsonResonse = new JSONObject(jsonResult.substring(jsonResult.indexOf("{"), jsonResult.lastIndexOf("}")+1)); JSONArray jsonMainNode = jsonResonse.optJSONArray("haberler"); final ArrayList<HashMap<String,String>> MyArrList = new ArrayList<HashMap<String, String>>(); HashMap<String,String> map; for(int i=0; i<jsonMainNode.length(); i++){ JSONObject c = jsonMainNode.getJSONObject(i); map = new HashMap<String,String>(); map.put("id", c.getString("id")); map.put("kisa_aciklama", c.getString("kisa_aciklama")); map.put("tarih", c.getString("tarih")); map.put("uzun_aciklama", c.getString("uzun_aciklama")); map.put("resim", c.getString("resim")); map.put("goruntulenme", c.getString("goruntulenme")); try { MyArrList.add(map); } catch (StringIndexOutOfBoundsException e) { Log.d("HATA 2",e.getMessage()); } SimpleAdapter sAdap = null; try { sAdap = new SimpleAdapter(HaberlerListview.this, MyArrList, R.layout.haberler_listview_icin, new String[]{"id","kisa_aciklama","tarih","uzun_aciklama","resim","goruntulenme"}, new int[]{R.id.txt_haber_id, R.id.txt_haberler_kisa_aciklama, R.id.txt_haberler_tarih, R.id.txt_haberler_uzun_aciklama, R.id.txt_haberler_resim,R.id.txt_haber_goruntulenme} ); } catch (StringIndexOutOfBoundsException e) { Log.d("HATA 3",e.getMessage()); } try { listView.setAdapter(sAdap); } catch (StringIndexOutOfBoundsException e) { Log.d("HATA 4",e.getMessage()); } } }catch (JSONException e){ Toast.makeText(getApplicationContext(),"error ..." + e.toString(), Toast.LENGTH_LONG).show(); } } buyrun.

    0

    Serhat Levent Yavaş

    Mühendislik Fakültesi - Bilgisayar Mühendisliği - 30 Nisan 2016

    kodunu göstermelisin.

    Bu soruya cevap vermek için üye olmanız veya giriş yapmanız gerekmektedir.