Android Can';t访问AsyncTask中的ArrayList HashMap值

Android Can';t访问AsyncTask中的ArrayList HashMap值,android,arraylist,android-asynctask,hashmap,Android,Arraylist,Android Asynctask,Hashmap,我在AsyncTask中有一个ArrayList,我想将从数据库检索到的数据存储到其中,然后我想在onPostExecute中访问列表中的每个元素,但从ArrayList获取值时出错。我的代码中有一个PID标记的日志,但在logcat中我看不到它 class Search extends AsyncTask<String, String, ArrayList<HashMap<String, String>>> { int success ;

我在
AsyncTask
中有一个
ArrayList
,我想将从数据库检索到的数据存储到其中,然后我想在
onPostExecute
中访问列表中的每个元素,但从ArrayList获取值时出错。我的代码中有一个PID标记的日志,但在logcat中我看不到它

class Search extends AsyncTask<String, String, ArrayList<HashMap<String, String>>> {

    int success ;
    @Override
    protected void onPreExecute() {
        super.onPreExecute();

    }

    protected ArrayList<HashMap<String, String>> doInBackground(String... args) {


        List<NameValuePair> param = new ArrayList<NameValuePair>();
        param.add(new BasicNameValuePair("search", result));

        // getting JSON Object
        // Note that create product url accepts POST method
        JSONObject json = jsonParser.makeHttpRequest("http://timit.ir/search/query1",
                "POST", param);

        // check log cat fro response
        Log.d("Create Response", json.toString());


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


            if (success == 1) {
                // products found
                // Getting Array of Products
                products = json.getJSONArray(TAG_PRODUCTS);


                // looping through All Products
                for (int i = 0; i < products.length(); i++) {
                    JSONObject c = products.getJSONObject(i);



                    // Storing each json item in variable
                    String id = c.getString(TAG_PID);
                    String bname = c.getString(TAG_NAME);
                    String success = json.getString(TAG_SUCCESS);
                    String subname = c.getString(TAG_SUBNAME);

                    // creating new HashMap
                    HashMap<String, String> map = new HashMap<String, String>();

                    // adding each child node to HashMap key => value
                    map.put(TAG_PID, id);
                    map.put(TAG_NAME, bname);
                    map.put(TAG_SUCCESS, success);
                    map.put(TAG_SUBNAME, subname);


                    // adding HashList to ArrayList
                    productsList.add(map);
                }
                Log.d("PID:", productsList.get(0).get(TAG_PID));

            }
        }
        catch (JSONException e) {
            e.printStackTrace();
        } 
        return productsList;
    }

    /**
     * After completing background task Dismiss the progress dialog
     * **/
    @Override
    protected void onPostExecute(ArrayList<HashMap<String, String>> result) {


        Log.d("succeeeeeeeeeessssss:::", result.get(0).get(TAG_SUCCESS));
        if(result.get(0).get(TAG_SUCCESS) !=null && result.get(0).get(TAG_SUCCESS).equals("1")){
            Toast.makeText(getBaseContext(), "ok", 2000).show();
        }
        else
        {
            Toast.makeText(getBaseContext(), "fail", 2000).show();
        }


    }
}   

实际上,问题是你们在产品阵列中获得了成功的对象,但它是另一个对象

JSON: “产品”:[], “成功”:“1”

从代码中删除此行:

 String success = json.getString(TAG_SUCCESS)`;

我将冒昧猜测productsList是nullproductsList.add(map),这一行可能会给出Null指针异常productsList.add(map);我给出了每个项目的日志id、名称,。。。他们都很好!!