2016-05-23 59 views
0

伙计们我正在开发一个android项目。我想在列表中显示5个项目,但我只有最后一个数组项目,基本上这个数组来自JSONarray。我怎么解决这个问题?这是我的主要活动类Listadapter仅显示android中数组的最后一个值?

 try { 
      Log.d("hy one ","two"); 
      //JSONObject jobj=new JSONObject(data1); 
      JSONArray jr=new JSONArray(data1);    
      for (int i=0;i<jr.length();i++) { 
       jsonObject = jr.getJSONObject(i); 
       like = jsonObject.getString(like_count); 
      } 
      JSONArray jsonArray3=jsonObject.getJSONArray("comments"); 
      HashMap<String, String> arr; 
      for(int j=0;j<jsonArray3.length();j++){ 
      arr = new HashMap<>(); 
      JSONObject jsonObject3 = jsonArray3.getJSONObject(j); 
      name11=jsonObject3.getString(name1); 
      Log.d("name value",name11); 

      arr.put("name",name11); 
      arrayList.add(arr); 
     } 
     Log.d("arraylist", String.valueOf(arrayList)); 

    } catch (JSONException e) { 
     e.printStackTrace(); 
    } 
    return null; 
} 
@Override 
protected void onPostExecute(String s) { 
    super.onPostExecute(s); 
    progressDialog.dismiss(); 
    /*list_adapter=new list_adapter(Dashboard.this); 
    listcomment.setAdapter(listAdapter);*/ 
    adapter= new Dashboard_Adapter(Dashboard.this,arrayList); 
    // Log.d("adapter", String.valueOf(adapter)); 

    listview.setAdapter(adapter); 
} 

这是我的适配器

public class Dashboard_Adapter extends BaseAdapter { 
    ViewHolder viewHolder; 
    SharedPreferences sharedPreferences; 
    private LayoutInflater layoutInflater = null; 
    // ArrayList<String> arr; 
    private Activity activity; 
    public Context context; 
    HashMap<String, String> arr; 
    ArrayList<HashMap<String, String>> arrayList; 
    public Dashboard_Adapter(Context dashbord, ArrayList<HashMap<String, String>> arrayList) { 
     activity = (Activity) dashbord; 
     this.arrayList=arrayList; 
     layoutInflater = (LayoutInflater) activity.getSystemService(Context.LAYOUT_INFLATER_SERVICE); 
     sharedPreferences = activity.getSharedPreferences(Login.My_Prefs, Context.MODE_PRIVATE); 
    } 

    @Override 
    public int getCount() { 
     return arrayList.size(); 
     // Log.d("arraysize",arrayList.size()); 

    } 

    @Override 
    public Object getItem(int position) { 
     return arrayList.get(position); 
    } 

    @Override 
    public long getItemId(int position) { 
     return position; 
    } 

    @Override 
    public View getView(final int position, View convertView, ViewGroup parent) { 

     View view = convertView; 
     final ViewHolder viewHolder; 
     if (convertView == null) { 
      view = layoutInflater.inflate(R.layout.omments, parent, false); 
      viewHolder = new ViewHolder(); 
      viewHolder.Name = (TextView) view.findViewById(R.id.txtTags23); 

      //comment 
      // viewHolder.btnPromote = (Button) view.findViewById(R.id.btnFeedResponce); 

      view.setTag(viewHolder); 
     } else { 
      viewHolder = (ViewHolder) view.getTag(); 
     } 
     arr = new HashMap<>(); 
     arr = arrayList.get(position); 

     viewHolder.Name.setText(Dashboard.name11); 




     return view; 
     // Glide.with(context).load(images).placeholder(R.drawable.home).into(imageView); 
    } 

    public static class ViewHolder { 
     TextView Name; 


    } 

} 

我认为问题出在适配器。

在此先感谢:)

+1

你有没有将其送入适配器上onPostExecute前检查使用日志ArrayList的大小()? –

+0

将所有解析代码移到'for(int i = 0; i

+1

是的,我检查过。所有值都存在于arraylist中,但未显示最终结果 –

回答

0
JsonObject jsonObject = New JsonObject(); 

在for循环

相关问题