2012-12-07 37 views
0

我面臨的一個問題與在我所檢索來自restservices數據和在列表視圖顯示它的碼檢索的數據....有問題與添加從輸入流

private class surveyCheck extends AsyncTask<String, Integer,List<SurveyMetaData>> { 

protected List<SurveyMetaData> doInBackground(String... params) { 

     if (mdebug_flag) { 
      Log.i(TAG_DEBUG, "SurveyCheck:doInBackground"); 
     } 
     String url = params[0]; 
     DefaultHttpClient httpClient = new DefaultHttpClient(); 
     HttpGet request = new HttpGet(url); 

     try { 

      request.setHeader("Accept", "application/json"); 
      request.setHeader("Content-type", "application/json"); 
      HttpResponse response = httpClient.execute(request); 
      final int statusCode = response.getStatusLine().getStatusCode(); 

      if (statusCode != HttpStatus.SC_OK) { 
       Log.w(getClass().getSimpleName(), "Error " + statusCode 
         + " for URL " + url); 
       return null; 
      } 
      HttpEntity responseEntity = response.getEntity(); 

      InputStream stream = responseEntity.getContent(); 
     InputStreamReader reader = new InputStreamReader(stream); 

      Gson gson=new Gson(); 

      Type collectionType=new TypeToken<List<SurveyMetaData>>(){}.getType(); 
      List<SurveyMetaData> result =gson.fromJson(reader,collectionType); 
      for(SurveyMetaData element : result) 
      { 
       Log.d("TAG","I 'm doing stuff with: " + element); 

      } 
      Survey_DB dataobj = new Survey_DB(getApplicationContext());  
      for (int i = 0; i <result.size() ; i++) { 
       if (dataobj.AddSurvey(result.get(i)) != -1) 
        ToastUtils.displayToast(Available_Surveys.this, 
          "Survey Inserted successfully", 
          (ViewGroup) findViewById(R.id.llRoot)); 
      } 

      Survey_Adapter adapter = new Survey_Adapter(
        getApplicationContext(), R.layout.list_item_menu, 
        result); 
      listView1 = (ListView) findViewById(R.id.listview_surveys); 
      listView1.setAdapter(adapter); 
      // Populate text field      return result; 



     } catch (IOException e) { 
      request.abort(); 
      Log.w(getClass().getSimpleName(), "Error for URL " + url, e); 
      return null; 
     } 

    } 

的代碼是接收流和閱讀器能夠讀取相同的內容,同時將其添加到 AddSurvey(result.get(i))...它將空值傳遞給參數插入..

+1

粘貼JSON的onPostExecute相關的任務你試圖解析。也粘貼SurveyMetaData。 – Zzokk

回答

0

您從背景執行UI tasks

ToastUtils.displayToast(Available_Surveys.this, 
         "Survey Inserted successfully", 
         (ViewGroup) findViewById(R.id.llRoot)); 

Survey_Adapter adapter = new Survey_Adapter(
       getApplicationContext(), R.layout.list_item_menu, 
       result); 
     listView1 = (ListView) findViewById(R.id.listview_surveys); 
     listView1.setAdapter(adapter); 

Performe UI在AsyncTask