2016-04-26 38 views
0

我想用JSON數據填充佈局中的多個文本視圖。 我收到JSON數據,但文本視圖的文本未更新。 需要幫助!使用json respose中的數據更新佈局中的多個TextView

這是我的代碼。

JSONObject response = new JSONObject(result1); 

     JSONArray json_profile_image = response.optJSONArray("profile_image"); 


     for (int i = 0; i < json_profile_image.length(); i++) { 

      JSONObject jsonObject1 = json_profile_image.getJSONObject(i); 
      String first_name = jsonObject1.getString("firstname").toString(); 
      String middle_name = jsonObject1.getString("middlename").toString(); 
      String last_name = jsonObject1.getString("lastname").toString(); 


      lbl_firstname.setText(first_name); 
      lbl_middlename.setText(middle_name); 
      lbl_lastname.setText(last_name); 

     } 
+0

這樣你只能得到textviews中的最後一個數據。最好使用listview並將數據提供給適配器並完成工作。 –

+0

實際上我希望這些數據能夠更新用戶個人資料的詳細信息,但很難更新列表視圖數據(即識別哪個字段更新) –

+0

您是否更新了UI線程內的文本瀏覽?您應該記錄first_name,middle_name和last_name以確保您獲得了正確的數據。 –

回答

0

有一個解決方案創建的TextView!

我首先創建一個arraylist-

ArrayList<String> dataList = new ArrayList<String>(); 

然後添加值從JSON來IT-

dataList.add(first_name); 
dataList.add(middle_name); 
dataList.add(last_name); 

然後更新文本視圖 -

if(!dataList.isEmpty()){ 
    lbl_firstname.setText(dataList.get(0)); 
    lbl_middlename.setText(dataList.get(1)); 
    lbl_lastname.setText(dataList.get(2)); 
} 

,因爲我用的AsyncTask來從url中獲取json數據,我更新了文本視圖

onPostExecute() 
0

裏面的for循環動態創建的TextView如下

for (int i = 0; i < json_profile_image.length(); i++) { 

     JSONObject jsonObject1 = json_profile_image.getJSONObject(i); 
     String first_name = jsonObject1.getString("firstname").toString(); 
     String middle_name = jsonObject1.getString("middlename").toString(); 
     String last_name = jsonObject1.getString("lastname").toString(); 
LayoutParams lparams = new LayoutParams(
LayoutParams.WRAP_CONTENT, LayoutParams.WRAP_CONTENT); 
TextView tv=new TextView(this); 
tv.setLayoutParams(lparams); 
tv.setText(first_name); 
yourLinearLayout.addView(tv); 
} 

所有JSON對象

+0

很抱歉,由於設計問題,我無法動態創建TextView。 –