无法在asyncTask中的onPostExecute中将json字符串设置为TextView

时间:2015-04-20 07:11:03

标签: java json android-asynctask

我现在面临的问题是我只想在onPostExecute()中设置json数组中的字符串数据。我通过许多教程对其进行了修改,但是,我无法设置MainActivity中的Text。我已在下面添加了示例代码。我想知道数据是否错误。

@SuppressWarnings("unchecked")
    protected void onPostExecute(JSONObject jsonobject) {
        try {
            jsonarray = jsonobject.getJSONArray("grape");
            outerjson = jsonarray;
            String ids = jsonobject.optString("id");
            String tpes = jsonobject.optString("type");


            for (int i = 0; i < jsonarray.length(); i++) {
                HashMap<String, String> map = new HashMap<String, String>();
                jsonobject = jsonarray.getJSONObject(i);
                String str = "";}

            // Step 3.
            map1 = new HashMap<String, String>();
            // this is the last step 4.
            try {
                JSONArray jArray = new JSONArray(str);

                for (int i = 0; i < jArray.length(); i++) {
                    JSONObject json = null;
                    json = jArray.getJSONObject(i);
                    map1.put("id", json.getString("id"));
                    map1.put("type", json.getString("type"));

                }

                result.setText(jsonarray.toString());


                ///set the json in here
            }catch (JSONException e) {}
        } catch (JSONException e) {}
        progressDialog.dismiss();
    }

1 个答案:

答案 0 :(得分:0)

信息不足,但我会尝试:

  1. 使用容器实体MyData data = gson.fromJson(jsonobject, MyData.class)使代码更清晰。
  2. 不要忽略异常
  3. 确保在主UI线程中调用result.setText(string);
  4. 按照以下3个步骤,找到错误,你会。