java - ANDROID 使用 AsyncTask MySQL 通过 JSON 更新 ListView

标签 java php android mysql json

沉浸在我的程序开发中,我遇到了一个在我看来并不是真的在说话的错误。

所以这是我的 logcat 顺序和 java 代码:

当我点击 ListView 中的项目时,它应该返回更新的联系信息。

public class  MajContactActivity extends Activity {

EditText txtNom;
EditText txtPrenom;
EditText txtNummobile;
EditText txtNumfixe;
EditText txtEmail;
EditText txtAdresse;
EditText txtProfession;

Button btnSav;
Button btnSup;

String idCONTACT;

// Progress Dialog
private ProgressDialog pDialog;

// JSON parser class
JSONParser jsonParser = new JSONParser();

// single contact url
private static final String url_detail_contact = "http://10.0.2.2/contactCloud/detail_contact.php";

// url to update contact
private static final String url_update_contact = "http://10.0.2.2/contactCloud/update_contact.php";

// url to delete contact
private static final String url_delete_contact = "http://10.0.2.2/contactCloud/delete_contact.php";

// JSON Node names
private static final String TAG_SUCCESS = "success";
private static final String TAG_CONTACT = "personne";
private static final String TAG_IDCONTACT = "idCONTACT";

private static final String TAG_NOM = "nom";
private static final String TAG_PRENOM = "prenom";
private static final String TAG_NUMMOBILE = "numero_mobile";
private static final String TAG_NUMFIXE = "numero_fixe";
private static final String TAG_EMAIL = "email";
private static final String TAG_ADRESSE = "adresse";
private static final String TAG_PROFESSION = "profession";

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.maj_contact);

    // save button
    btnSav = (Button) findViewById(R.id.btnSav);
    btnSup = (Button) findViewById(R.id.btnSup);

    // getting contact details from intent
    Intent i = getIntent();

    // getting contact id (idCONTACT) from intent
    idCONTACT = i.getStringExtra(TAG_IDCONTACT);

    // Getting complete contact details in background thread
    new GetDetailContact().execute();

    // save button click event
    btnSav.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // starting background task to update contact
            new SavDetailContact().execute();
        }
    });

    // Delete button click event
    btnSup.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // deleting contact in background thread
            new SupContact().execute();
        }
    });

}

/**
 * Background Async Task to Get complete contact details
 * */
class GetDetailContact extends AsyncTask<String, String, String> {

    /**
     * Before starting background thread Show Progress Dialog
     * */
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(MajContactActivity.this);
        pDialog.setMessage("Chargement du contact. Veuillez patientez...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();
    }

    /**
     * Getting contact details in background thread
     * */
    protected String doInBackground(String... params) {

                // Check for success tag
                int success;
                try {
                    // Building Parameters
                    List<NameValuePair> params1 = new ArrayList<NameValuePair>();
                    params1.add(new BasicNameValuePair("idCONTACT", idCONTACT));

                    // getting contact details by making HTTP request
                    // Note that contact details url will use GET request
                    JSONObject json = jsonParser.makeHttpRequest(url_detail_contact, "GET", params1);

                    // check your log for json response
                    Log.d("Detail contact unique", json.toString());

                    // json success tag
                    success = json.getInt(TAG_SUCCESS);
                    if (success == 1) {
                        // successfully received contact details
                        JSONArray personneObj = json.getJSONArray(TAG_CONTACT); // JSON Array

                        // get first contact object from JSON Array
                        JSONObject personne = personneObj.getJSONObject(0);

                        // contact with this idCONTACT found
                        // Edit Text
                        txtNom = (EditText) findViewById(R.id.inputNom);
                        txtPrenom = (EditText) findViewById(R.id.inputPrenom);
                        txtNummobile = (EditText) findViewById(R.id.inputNumMobile);
                        txtNumfixe = (EditText) findViewById(R.id.inputNumFixe);
                        txtEmail = (EditText) findViewById(R.id.inputEmail);
                        txtAdresse = (EditText) findViewById(R.id.inputAdresse);
                        txtProfession = (EditText) findViewById(R.id.inputProfession);

                        // display contact data in EditText
                        txtNom.setText(personne.getString(TAG_NOM));
                        txtPrenom.setText(personne.getString(TAG_PRENOM));
                        txtNummobile.setText(personne.getString(TAG_NUMMOBILE));
                        txtNumfixe.setText(personne.getString(TAG_NUMFIXE));
                        txtEmail.setText(personne.getString(TAG_EMAIL));
                        txtAdresse.setText(personne.getString(TAG_ADRESSE));
                        txtProfession.setText(personne.getString(TAG_PROFESSION));

                    }else{
                        // contact with idCONTACT not found
                    }
                } 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 got all details
        pDialog.dismiss();
    }
}

/**
 * Background Async Task to  Save contact Details
 * */
class SavDetailContact extends AsyncTask<String, String, String> {

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

    /**
     * Saving contact
     * */
    protected String doInBackground(String... args) {

        // getting updated data from EditTexts
        String nom = txtNom.getText().toString();
        String prenom = txtPrenom.getText().toString();
        String numero_mobile = txtNummobile.getText().toString();
        String numero_fixe = txtNumfixe.getText().toString();
        String email = txtEmail.getText().toString();
        String adresse = txtAdresse.getText().toString();
        String profession = txtProfession.getText().toString();

        // Building Parameters
        List<NameValuePair> params = new ArrayList<NameValuePair>();

        params.add(new BasicNameValuePair(TAG_IDCONTACT, idCONTACT));
        params.add(new BasicNameValuePair(TAG_NOM, nom));
        params.add(new BasicNameValuePair(TAG_PRENOM, prenom));
        params.add(new BasicNameValuePair(TAG_NUMMOBILE, numero_mobile));
        params.add(new BasicNameValuePair(TAG_NUMFIXE, numero_fixe));
        params.add(new BasicNameValuePair(TAG_EMAIL, email));
        params.add(new BasicNameValuePair(TAG_ADRESSE, adresse));
        params.add(new BasicNameValuePair(TAG_PROFESSION, profession));

        // sending modified data through http request
        // Notice that update contact url accepts POST method
        JSONObject json = jsonParser.makeHttpRequest(url_update_contact,"POST", params);

        // check json success tag
        try {
            int success = json.getInt(TAG_SUCCESS);

            if (success == 1) {
                // successfully updated
                Intent i = getIntent();
                // send result code 100 to notify about contact update
                setResult(100, i);
                finish();
            } else {
                // failed to update contact
            }
        } 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 contact uupdated
        pDialog.dismiss();
    }
}

/*****************************************************************
 * Background Async Task to Delete Product
 * */
class SupContact extends AsyncTask<String, String, String> {

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

    /**
     * Deleting contact
     * */
    protected String doInBackground(String... args) {

        // Check for success tag
        int success;
        try {
            // Building Parameters
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("idCONTACT", idCONTACT));

            // getting contact details by making HTTP request
            JSONObject json = jsonParser.makeHttpRequest(url_delete_contact, "POST", params);

            // check your log for json response
            Log.d("Suppression du contact", json.toString());

            // json success tag
            success = json.getInt(TAG_SUCCESS);
            if (success == 1) {
                // contact successfully deleted
                // notify previous activity by sending code 100
                Intent i = getIntent();
                // send result code 100 to notify about contact deletion
                setResult(100, i);
                finish();
            }
        } 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 contact deleted
        pDialog.dismiss();

    }

}
} 


12-05 19:46:28.287: E/AndroidRuntime(1161): FATAL EXCEPTION: AsyncTask #
212-05 19:46:28.287: E/AndroidRuntime(1161): java.lang.RuntimeException: An error occured while executing doInBackground()
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.os.AsyncTask$3.done(AsyncTask.java:299)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at java.util.concurrent.FutureTask.finishCompletion(FutureTask.java:352)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at java.util.concurrent.FutureTask.setException(FutureTask.java:219)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at java.util.concurrent.FutureTask.run(FutureTask.java:239)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.os.AsyncTask$SerialExecutor$1.run(AsyncTask.java:230)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1080)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:573)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at java.lang.Thread.run(Thread.java:841)
12-05 19:46:28.287: E/AndroidRuntime(1161): Caused by: android.view.ViewRootImpl$CalledFromWrongThreadException: Only the original thread that created a view hierarchy can touch its views.
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.view.ViewRootImpl.checkThread(ViewRootImpl.java:5908)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.view.ViewRootImpl.invalidateChildInParent(ViewRootImpl.java:869)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.view.ViewGroup.invalidateChild(ViewGroup.java:4253)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.view.View.invalidate(View.java:10482)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.widget.TextView.invalidateRegion(TextView.java:4591)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.widget.TextView.invalidateCursor(TextView.java:4534)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.widget.TextView.spanChange(TextView.java:7412)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.widget.TextView$ChangeWatcher.onSpanAdded(TextView.java:9103)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.text.SpannableStringBuilder.sendSpanAdded(SpannableStringBuilder.java:979)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:688)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.text.SpannableStringBuilder.setSpan(SpannableStringBuilder.java:588)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.text.Selection.setSelection(Selection.java:76)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.text.Selection.setSelection(Selection.java:87)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.text.method.ArrowKeyMovementMethod.initialize(ArrowKeyMovementMethod.java:302)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.widget.TextView.setText(TextView.java:3759)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.widget.TextView.setText(TextView.java:3629)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.widget.EditText.setText(EditText.java:80)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.widget.TextView.setText(TextView.java:3604)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at fr.paris8.contactcloud.MajContactActivity$GetDetailContact.doInBackground(MajContactActivity.java:162)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at fr.paris8.contactcloud.MajContactActivity$GetDetailContact.doInBackground(MajContactActivity.java:1)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at android.os.AsyncTask$2.call(AsyncTask.java:287)
12-05 19:46:28.287: E/AndroidRuntime(1161):     at java.util.concurrent.FutureTask.run(FutureTask.java:234)
12-05 19:46:28.287: E/AndroidRuntime(1161):     ... 4 more

12-05 19:46:36.289: E/WindowManager(1161): Activity fr.paris8.contactcloud.MajContactActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{41803700 V.E..... R.....ID 0,0-480,144} that was originally added here
12-05 19:46:36.289: E/WindowManager(1161): android.view.WindowLeaked: Activity fr.paris8.contactcloud.MajContactActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{41803700 V.E..... R.....ID 0,0-480,144} that was originally added here
12-05 19:46:36.289: E/WindowManager(1161):  at android.view.ViewRootImpl.<init>(ViewRootImpl.java:345)
12-05 19:46:36.289: E/WindowManager(1161):  at android.view.WindowManagerGlobal.addView(WindowManagerGlobal.java:239)
12-05 19:46:36.289: E/WindowManager(1161):  at android.view.WindowManagerImpl.addView(WindowManagerImpl.java:69)
12-05 19:46:36.289: E/WindowManager(1161):  at android.app.Dialog.show(Dialog.java:281)
12-05 19:46:36.289: E/WindowManager(1161):  at fr.paris8.contactcloud.MajContactActivity$GetDetailContact.onPreExecute(MajContactActivity.java:120)
12-05 19:46:36.289: E/WindowManager(1161):  at android.os.AsyncTask.executeOnExecutor(AsyncTask.java:586)
12-05 19:46:36.289: E/WindowManager(1161):  at android.os.AsyncTask.execute(AsyncTask.java:534)
12-05 19:46:36.289: E/WindowManager(1161):  at fr.paris8.contactcloud.MajContactActivity.onCreate(MajContactActivity.java:81)
12-05 19:46:36.289: E/WindowManager(1161):  at android.app.Activity.performCreate(Activity.java:5133)
12-05 19:46:36.289: E/WindowManager(1161):  at android.app.Instrumentation.callActivityOnCreate(Instrumentation.java:1087)
12-05 19:46:36.289: E/WindowManager(1161):  at android.app.ActivityThread.performLaunchActivity(ActivityThread.java:2175)
12-05 19:46:36.289: E/WindowManager(1161):  at android.app.ActivityThread.handleLaunchActivity(ActivityThread.java:2261)
12-05 19:46:36.289: E/WindowManager(1161):  at android.app.ActivityThread.access$600(ActivityThread.java:141)
12-05 19:46:36.289: E/WindowManager(1161):  at android.app.ActivityThread$H.handleMessage(ActivityThread.java:1256)
12-05 19:46:36.289: E/WindowManager(1161):  at android.os.Handler.dispatchMessage(Handler.java:99)
12-05 19:46:36.289: E/WindowManager(1161):  at android.os.Looper.loop(Looper.java:137)
12-05 19:46:36.289: E/WindowManager(1161):  at android.app.ActivityThread.main(ActivityThread.java:5103)
12-05 19:46:36.289: E/WindowManager(1161):  at java.lang.reflect.Method.invokeNative(Native Method)
12-05 19:46:36.289: E/WindowManager(1161):  at java.lang.reflect.Method.invoke(Method.java:525)
12-05 19:46:36.289: E/WindowManager(1161):  at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:737)
12-05 19:46:36.289: E/WindowManager(1161):  at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553)
12-05 19:46:36.289: E/WindowManager(1161):  at dalvik.system.NativeStart.main(Native Method)

我没看到还是错了?

谢谢你的帮助!

最佳答案

试试这个..

您不能在 doInBackground 中进行初始化,您需要在 onCreate 中进行初始化。就像你不能在 doInBackground 中设置文本一样,需要在 onPostExecute 中设置。

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.maj_contact);

    // save button
    btnSav = (Button) findViewById(R.id.btnSav);
    btnSup = (Button) findViewById(R.id.btnSup);

    // Edit Text
                        txtNom = (EditText) findViewById(R.id.inputNom);
                        txtPrenom = (EditText) findViewById(R.id.inputPrenom);
                        txtNummobile = (EditText) findViewById(R.id.inputNumMobile);
                        txtNumfixe = (EditText) findViewById(R.id.inputNumFixe);
                        txtEmail = (EditText) findViewById(R.id.inputEmail);
                        txtAdresse = (EditText) findViewById(R.id.inputAdresse);
                        txtProfession = (EditText) findViewById(R.id.inputProfession);


    // getting contact details from intent
    Intent i = getIntent();

    // getting contact id (idCONTACT) from intent
    idCONTACT = i.getStringExtra(TAG_IDCONTACT);

    // Getting complete contact details in background thread
    new GetDetailContact().execute();

    // save button click event
    btnSav.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // starting background task to update contact
            new SavDetailContact().execute();
        }
    });

    // Delete button click event
    btnSup.setOnClickListener(new View.OnClickListener() {

        @Override
        public void onClick(View arg0) {
            // deleting contact in background thread
            new SupContact().execute();
        }
    });

}

/**
 * Background Async Task to Get complete contact details
 * */
class GetDetailContact extends AsyncTask<String, String, String> {

    /**
     * Before starting background thread Show Progress Dialog
     * */
    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(MajContactActivity.this);
        pDialog.setMessage("Chargement du contact. Veuillez patientez...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();
    }

    /**
     * Getting contact details in background thread
     * */
    protected String doInBackground(String... params) {

                // Check for success tag
                int success;
                try {
                    // Building Parameters
                    List<NameValuePair> params1 = new ArrayList<NameValuePair>();
                    params1.add(new BasicNameValuePair("idCONTACT", idCONTACT));

                    // getting contact details by making HTTP request
                    // Note that contact details url will use GET request
                    JSONObject json = jsonParser.makeHttpRequest(url_detail_contact, "GET", params1);

                    // check your log for json response
                    Log.d("Detail contact unique", json.toString());

                    // json success tag
                    success = json.getInt(TAG_SUCCESS);
                    if (success == 1) {
                        // successfully received contact details
                        JSONArray personneObj = json.getJSONArray(TAG_CONTACT); // JSON Array

                        // get first contact object from JSON Array
                        JSONObject personne = personneObj.getJSONObject(0);

                        // contact with this idCONTACT found



                    }else{
                        // contact with idCONTACT not found
                    }
                } 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 got all details
        pDialog.dismiss();

                       // display contact data in EditText
                        txtNom.setText(personne.getString(TAG_NOM));
                        txtPrenom.setText(personne.getString(TAG_PRENOM));
                        txtNummobile.setText(personne.getString(TAG_NUMMOBILE));
                        txtNumfixe.setText(personne.getString(TAG_NUMFIXE));
                        txtEmail.setText(personne.getString(TAG_EMAIL));
                        txtAdresse.setText(personne.getString(TAG_ADRESSE));
                        txtProfession.setText(personne.getString(TAG_PROFESSION));
    }
}

/**
 * Background Async Task to  Save contact Details
 * */
class SavDetailContact extends AsyncTask<String, String, String> {

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

    /**
     * Saving contact
     * */
    protected String doInBackground(String... args) {

        // getting updated data from EditTexts
        String nom = txtNom.getText().toString();
        String prenom = txtPrenom.getText().toString();
        String numero_mobile = txtNummobile.getText().toString();
        String numero_fixe = txtNumfixe.getText().toString();
        String email = txtEmail.getText().toString();
        String adresse = txtAdresse.getText().toString();
        String profession = txtProfession.getText().toString();

        // Building Parameters
        List<NameValuePair> params = new ArrayList<NameValuePair>();

        params.add(new BasicNameValuePair(TAG_IDCONTACT, idCONTACT));
        params.add(new BasicNameValuePair(TAG_NOM, nom));
        params.add(new BasicNameValuePair(TAG_PRENOM, prenom));
        params.add(new BasicNameValuePair(TAG_NUMMOBILE, numero_mobile));
        params.add(new BasicNameValuePair(TAG_NUMFIXE, numero_fixe));
        params.add(new BasicNameValuePair(TAG_EMAIL, email));
        params.add(new BasicNameValuePair(TAG_ADRESSE, adresse));
        params.add(new BasicNameValuePair(TAG_PROFESSION, profession));

        // sending modified data through http request
        // Notice that update contact url accepts POST method
        JSONObject json = jsonParser.makeHttpRequest(url_update_contact,"POST", params);

        // check json success tag
        try {
            int success = json.getInt(TAG_SUCCESS);


        } 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 contact uupdated
        pDialog.dismiss();

           if (success == 1) {
                // successfully updated
                Intent i = getIntent();
                // send result code 100 to notify about contact update
                setResult(100, i);
                finish();
            } else {
                // failed to update contact
            }
    }
}

编辑:

class GetDetailContact extends AsyncTask<String, void, JSONObject> {

        /**
         * Before starting background thread Show Progress Dialog
         * */
        @Override
        protected void onPreExecute() {
            super.onPreExecute();
            pDialog = new ProgressDialog(MajContactActivity.this);
            pDialog.setMessage("Chargement du contact. Veuillez patientez...");
            pDialog.setIndeterminate(false);
            pDialog.setCancelable(true);
            pDialog.show();
        }

        /**
         * Getting contact details in background thread
         * */
        protected JSONObject doInBackground(String... params) {

                    // Check for success tag
                    int success;
                    try {
                        // Building Parameters
                        List<NameValuePair> params1 = new ArrayList<NameValuePair>();
                        params1.add(new BasicNameValuePair("idCONTACT", idCONTACT));

                        // getting contact details by making HTTP request
                        // Note that contact details url will use GET request
                        JSONObject json = jsonParser.makeHttpRequest(url_detail_contact, "GET", params1);

                        // check your log for json response
                        Log.d("Detail contact unique", json.toString());

                        // json success tag
                        success = json.getInt(TAG_SUCCESS);
                        if (success == 1) {
                            // successfully received contact details
                            JSONArray personneObj = json.getJSONArray(TAG_CONTACT); // JSON Array

                            // get first contact object from JSON Array
                            JSONObject personne = personneObj.getJSONObject(0);

                            // contact with this idCONTACT found

                           return personne;

                        }else{
                            // contact with idCONTACT not found
                        }
                    } catch (JSONException e) {
                        e.printStackTrace();
                    }
            return null;
        }
        /**
         * After completing background task Dismiss the progress dialog
         * **/
        protected void onPostExecute(JSONObject personne) {
            // dismiss the dialog once got all details
            pDialog.dismiss();

                           // display contact data in EditText
                            txtNom.setText(personne.getString(TAG_NOM));
                            txtPrenom.setText(personne.getString(TAG_PRENOM));
                            txtNummobile.setText(personne.getString(TAG_NUMMOBILE));
                            txtNumfixe.setText(personne.getString(TAG_NUMFIXE));
                            txtEmail.setText(personne.getString(TAG_EMAIL));
                            txtAdresse.setText(personne.getString(TAG_ADRESSE));
                            txtProfession.setText(personne.getString(TAG_PROFESSION));
        }
    }

关于java - ANDROID 使用 AsyncTask MySQL 通过 JSON 更新 ListView,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20413961/

相关文章:

php - 将一个表中的值插入到另一个表中

php - 在不改变 HTML 的情况下操作 HTML 字符串的内容

java - 如何将数据库中的图片加载到ListView中?

android - gradle、插件和sdk版本兼容性

java - Angular 6 - Spring MVC::Options 预检请求抛出 500 内部服务器错误

java - RGB channel 之间切换

java - BigDecimal 方法发送格式化数字

php - 如何解密 PHP 中 npm-rsa 创建的数据?

java - 为什么 C# 构造函数行为与 Java 不同,反之亦然?

Android Wear 应用在​​商店中不可见(内部测试轨道)