Listadapter只显示android中数组的最后一个值?

时间:2016-05-23 11:18:40

标签: android performance android-layout listview android-studio

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

       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 个答案:

答案 0 :(得分:0)

 JsonObject jsonObject = New JsonObject();

在for循环中