2015-07-12 3 views
1

В настоящее время я делаю свой последний проект с использованием Android Studio. Для моего мобильного приложения осталось несколько функций.Функция обновления, не работающая в Android Studio

Однако мое приложение не выполнило функцию обновления.

Прежде чем продолжить учетную запись обновления в моем мобильном приложении, я использую JSON для извлечения значения в базе данных. Затем значение хранится в EditText формы обновления. Затем я попытался внести некоторые изменения в форму. Когда я нажму кнопку «Отправить», он перейдет к следующему действию, которое представляет собой учетную запись просмотра. Но ценность, которую я внесла в некоторые изменения, по-прежнему такая же, как и до учетной записи обновления. Я уже проверял кодирование или передаваемое значение в Intent, но ничего плохого. Почему это происходит? Кто-нибудь может мне с этим помочь?

Я полностью потерян, с чего начать. Я все еще занимаюсь разработкой приложений для Android.

Я использую PHP и MySQL для обновления значения в базе данных.

Вот моя кодировка на PHP.

<?php 

$response = array(); 

     include 'db_connect.php'; 
     $db = new DB_CONNECT();  if (isset($_POST['idDoc'])) { 

     $idDoc = $_POST['idDoc']; $namedoc = $_POST['namedoc']; 
     $ic = $_POST['ic'];  $address = $_POST['address']; $notel = $_POST['notel']; $passwrd = $_POST['passwrd']; 

     $result = mysql_query("UPDATE `DOCTOR` SET namedoc = '$namedoc', ic = '$ic', address = '$address', noTel = '$notel', passwrd = '$passwrd' WHERE idDoc = $idDoc"); // check if row inserted or not 
     if ($result) { 
      // successfully updated 
      $response["success"] = 1; 
      $response["message"] = "Account successfully updated."; 

      echo json_encode($response); 
     } else { 

     } } else { 

     $response["success"] = 0; 
     $response["message"] = "Required field(s) is missing"; 

     echo json_encode($response); 
} ?> 

Вот код для обновления значения в EditText.

class updAcc extends AsyncTask<String, String, JSONObject> { 

     /** 
     * Before starting background thread Show Progress Dialog 
     */ 
     @Override 
     protected void onPreExecute() { 
      super.onPreExecute(); 
      pDialog = new ProgressDialog(updateAccDoc.this); 
      pDialog.setMessage("Updating accound.."); 
      pDialog.setIndeterminate(false); 
      pDialog.setCancelable(true); 
      pDialog.show(); 
     } 


     protected JSONObject doInBackground(String... params) { 

      String namedoc = nameDoc.getText().toString(); 
      String iddoc = idDoc.getText().toString(); 
      String icdoc = icDoc.getText().toString(); 
      String address = addDoc.getText().toString(); 
      String notel = notelDoc.getText().toString(); 
      String pass = password.getText().toString(); 

      List<NameValuePair> param = new ArrayList<NameValuePair>(); 
      param.add(new BasicNameValuePair("idDoc", iddoc)); 
      param.add(new BasicNameValuePair("namedoc", namedoc)); 
      param.add(new BasicNameValuePair("ic", icdoc)); 
      param.add(new BasicNameValuePair("address", address)); 
      param.add(new BasicNameValuePair("notel", notel)); 
      param.add(new BasicNameValuePair("passwrd", pass)); 

      JSONObject json = jsonParser.makeHttpRequest(urll2, 
        "POST", param); 

      try { 

       int success = json.getInt("success"); 

       if (success == 1) { 
        // successfully updated 
        Intent intent = new Intent(updateAccDoc.this, docProfile.class); 
        String ID6 = getIntent().getExtras().getString("idDoc"); 
        intent.putExtra("idDoc", ID6); 
        startActivity(intent); 
        finish(); 

       } else { 
        // failed to update product 
       } 
      } catch (JSONException e) { 
       e.printStackTrace(); 
      } 


      return null; 
     } 

     /** 
     * After completing background task Dismiss the progress dialog 
     * * 
     */ 
     protected void onPostExecute(String file_url) { 
      // dismiss the dialog once product uupdated 
      pDialog.dismiss(); 
     } 

    } 

Трассировка сказал «Не удается преобразовать строку в формат JSON»

ответ

0

Вы пытаетесь обработать ответ вашего запроса HTTP в методе doInBackground вместо возвращения ответа, который позволит вам использовать ответ в метод onPostExecute. check http://developer.android.com/reference/android/os/AsyncTask.html для правильного использования AsyncTask.

Добавить return json; После того, как JSONObject json = jsonParser.makeHttpRequest(urll2,"POST", param); затем вырежьте блок try из метода doInBackground и вставьте его в метод onPostExecute.

onPostExecute должен выглядеть следующим образом

protected void onPostExecute(JSONObject json) { 
    pDialog.dismiss(); 
    try { 
     int success = json.getInt("success"); 

     if (success == 1) { 
      // successfully updated 
      Intent intent = new Intent(updateAccDoc.this, docProfile.class); 
      String ID6 = getIntent().getExtras().getString("idDoc"); 
      intent.putExtra("idDoc", ID6); 
      startActivity(intent); 
      finish(); 

     } else { 
      // failed to update product 
     } 
    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
} 
+0

Sorry. Но я действительно не понимаю, что вы пытаетесь сказать ... – ChrisHarry

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