2016-06-30 2 views
-2

мое приложение вылетает, когда Serialno и город недоступны в базе данных, иногда он показывает «Нет данных», и несколько раз он падает, мне нужно только показывать тосты, когда когда-либо Серийный номер и город нет в базе данных.Приложение аварийно завершает работу, если в базе данных mysql данных нет данных

public String getvalues() 
    { 
    String uri = "http://www.lorryguru.com/retusno.php?city="+Citys+"&serialno="+SerialNo; 
    HttpGet httpGet = new HttpGet(uri); 
    HttpClient client = new DefaultHttpClient(); 
    HttpResponse response; 
    StringBuilder stringBuilder = new StringBuilder(); 

    try { 
     response = client.execute(httpGet); 
     HttpEntity entity = response.getEntity(); 
     InputStream stream = entity.getContent(); 
     int b; 
     while ((b = stream.read()) != -1) 
     { 
      stringBuilder.append((char) b); 
     } 
    } 
    catch (ClientProtocolException e) 
    { 
     e.printStackTrace(); 
    } 
    catch (IOException e) 
    { 
     e.printStackTrace(); 
    } 
    try 
    { 
     JSONArray arr = new JSONArray(stringBuilder.toString()); 
     //result = jsonObj.getJSONArray(TAG_RESULT); 
     JSONObject c = arr.getJSONObject(0); 
     id = c.getString(TAG_ID); 
     district = c.getString(TAG_DISTRICT); 
     cit = c.getString(TAG_CITY); 
     serial_no = c.getString(TAG_SERIALNO); 
     gende = c.getString(TAG_GENDER); 
     wareno = c.getString(TAG_WARENO); 
     befor = c.getString(TAG_BEFORE); 
     afte = c.getString(TAG_AFTER); 
     latitude = c.getString(TAG_LATITUDE); 
     longitude = c.getString(TAG_LONGITUDE); 
     return "success"; 
    } 
    catch (JSONException e) 
    { 
     return "No Data is Available"; 
     //e.printStackTrace(); 
    } 
} 

мой PHP скрипт

 <?php 
     require "init.php"; 

     $serialno = $_REQUEST["serialno"]; 
     $city = $_REQUEST["city"]; 

     $sql = "SELECT * FROM dogs_details WHERE serial_no='".$serialno."' &&city='".$city."' "; 
     $res = $con->query($sql); 
     $result = array(); 

     while($row = mysqli_fetch_array($res)){ 

    if($row['after_dog']=="") 
    { 
    $afterimage="No Image";  
     } 
    else 
    { 
    $afterimage=$row['after_dog']; 
    } 

    array_push($result, 
    array('id'=>$row['id'], 
    'district'=>$row['district'], 
    'city'=>$row['city'], 
    'serialno'=>$row['serial_no'], 
    'gender'=>$row['gender'], 
    'wareno'=>$row['ware_no'], 
    'before'=>$row['before_dog'], 
    'after'=>$afterimage, 
    'latitude'=>$row['latitude'], 
    'longitude'=>$row['longitude'] 
    )); 
    } 
    echo json_encode($result); 

    mysqli_close($con); 
    ?> 

Мои postExecute ниже

  protected void onPostExecute(String s) { 

      InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE); 
      imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0); 
      dialog.hide(); 
      Toast.makeText(getApplicationContext(), s, Toast.LENGTH_SHORT).show(); 
      dis.setText("District " + district); 
      city.setText("City  " + cit); 
      serialno.setText("Serial No. " + serial_no); 
      gender.setText("Gender " + gende); 
      Picasso.with(Serialno.this).load(befor).into(before); 
      if (afte.equals("No Image")) { 
       after.setImageDrawable(getResources().getDrawable(R.drawable.load)); 
      } else { 
       Picasso.with(Serialno.this).load(afte).into(after); 
      } 

      // loction.setText("Latitude "+latitude+" "+"Longitude "+longitude); 
      Showing_Map(); 

     } 
+0

В PHP аварии? Сбой JAVA? Сбой веб-сервера? Дайте нам небольшую помощь здесь, пожалуйста. – RiggsFolly

+1

сбой приложений для Android –

+0

Пожалуйста, вставьте журналы logcat. –

ответ

1

Проверка недействительности всех полей JSONObject, а затем попытаться использовать их. Например:

try 
{ 
    JSONArray arr = new JSONArray(stringBuilder.toString()); 
    //result = jsonObj.getJSONArray(TAG_RESULT); 
    JSONObject c = arr.getJSONObject(0); 

    if(c.isNull(TAG_ID) 
     id=""; 
    else 
     id = c.getString(TAG_ID); 

    if(c.isNull(TAG_DISTRICT) 
     district=""; 
    else 
     district = c.getString(TAG_DISTRICT); 

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

    return "success"; 
} 
catch (JSONException e) 
{ 
    return "No Data is Available"; 
    //e.printStackTrace(); 
} 

И onPostExecute показать Тост:

protected void onPostExecute(String s) { 

     InputMethodManager imm = (InputMethodManager) getSystemService(Activity.INPUT_METHOD_SERVICE); 
     imm.toggleSoftInput(InputMethodManager.HIDE_IMPLICIT_ONLY, 0); 
     dialog.hide(); 
     Toast.makeText(getApplicationContext(), s, Toast.LENGTH_SHORT).show(); 
     dis.setText("District " + district); 

    //Toast when city is null 
    if(cit.equals("")) 
     Toast.makeText(getApplicationContext(), YOUR_MESSSAGE, Toast.LENGTH_SHORT).show(); 

    //Toast when serail_no is null 
    if(serail_no .equals("")) 
     Toast.makeText(getApplicationContext(), YOUR_MESSSAGE, Toast.LENGTH_SHORT).show(); 


     city.setText("City  " + cit); 
     serialno.setText("Serial No. " + serial_no); 
     gender.setText("Gender " + gende); 
     Picasso.with(Serialno.this).load(befor).into(before); 
     if (afte.equals("No Image")) { 
      after.setImageDrawable(getResources().getDrawable(R.drawable.load)); 
     } else { 
      Picasso.with(Serialno.this).load(afte).into(after); 
     } 

     // loction.setText("Latitude "+latitude+" "+"Longitude "+longitude); 
     Showing_Map(); 

    } 
+0

Я проверяю это, спасибо за ответ. –

+0

Я все еще сталкиваюсь с той же проблемой –

+0

Опубликуйте свои журналы. – Drv

Смежные вопросы