1

伙计们。无法将 JSON 字符串/对象输出到 TextView。几天前开始在 Android Studio 中编程,所以……需要你们的帮助,伙计们。我有 mainActivity、AllProductsActivity 和 EditProductActivity。从 mysql 数据库获取 JSON 数组并显示在 ListView 中的所有产品活动。单击列表项后,它转到 EditProductActivity。工作正常。但我不明白我需要如何处理这个错误......

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


    //Show progress dialog

    @Override
    protected void onPreExecute() {
        super.onPreExecute();
        pDialog = new ProgressDialog(EditProductActivity.this);
        pDialog.setMessage("Loading product details. Please wait...");
        pDialog.setIndeterminate(false);
        pDialog.setCancelable(true);
        pDialog.show();
    }


    //Getting detail info in background


    protected JSONObject doInBackground(String... args) {

        JSONObject product = null;
        // check status success tag
        int success;

        try {
            // parameters
            List<NameValuePair> params = new ArrayList<NameValuePair>();
            params.add(new BasicNameValuePair("pid", pid));

            // getting product from HTTP
            JSONObject json = jsonParser.makeHttpRequest(url_product_details, "GET", params);

            Log.d("Single Product Details", json.toString());

            success = json.getInt(TAG_SUCCESS);
            if (success == 1) {
                // Getting detail info successful
                JSONArray productObj = json.getJSONArray(TAG_PRODUCT);

                // first object from JSON Array
                product = productObj.getJSONObject(0);

            } else {
                // product with that pid not found
                Toast.makeText(getApplicationContext(), "pid not found", Toast.LENGTH_SHORT).show();
                Intent intent = new Intent(getApplicationContext(), AllProductsActivity.class);
                startActivity(intent);
            }
        } catch (JSONException e) {
            e.printStackTrace();
        }

        return product;
    }

    /**
     * After completing background task Dismiss the progress dialog
     * *
     */
    protected void onPostExecute(JSONObject product) {
        if (product != null) {
            setContentView(R.layout.activity_edit_product);

            // product with this pid found
            // Text View
            txtName = (TextView) findViewById(R.id.showName);
            txtPrice = (TextView) findViewById(R.id.showPrice);
            txtDesc = (TextView) findViewById(R.id.showDescription);

            // display product data in EditText

           txtName.setText(product.getString(TAG_NAME));
          txtPrice.setText(product.getString(TAG_PRICE));
           txtDesc.setText(product.getString(TAG_DESCRIPTION));

        }
        // close progress dialog
        pDialog.dismiss();
    }
}

}

错误:

txtName.setText(product.getString(TAG_NAME));
txtPrice.setText(product.getString(TAG_PRICE));
txtDesc.setText(product.getString(TAG_DESCRIPTION));

未处理的异常:org.json.JSONException

4

1 回答 1

4

添加尝试/捕获

try {
            txtName.setText(product.getString(TAG_NAME));
            txtPrice.setText(product.getString(TAG_PRICE));
            txtDesc.setText(product.getString(TAG_DESCRIPTION));
        } catch (JSONException e) {
            // Do something with the exception
        }
于 2015-05-17T16:27:47.827 回答