0

Jungs ich arbeite an einem Android-Projekt. Ich möchte 5 Elemente in einer Liste zeigen, aber ich habe nur das letzte Element von Array, im Grunde stammt dieses Array von einem JSONarray. Wie kann ich dieses Problem lösen? das ist meine Haupttätigkeit KlasseListadapter zeigen nur letzten Wert von Array in 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); 
} 

dies mein 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; 


    } 

} 

denken ist i Problem in Adapter ist.

Dank im Voraus :)

+1

Haben Sie die Arraylist Größe überprüft ein Protokoll verwenden, bevor es mit dem Adapter auf OnPostExecute Fütterung()? –

+0

Verschieben Sie den gesamten Parsing-Code in 'for (int i = 0; i

+1

ja, das habe ich überprüft. Alle Werte sind in Arraylist vorhanden, aber nicht im Endergebnis –

Antwort

0
JsonObject jsonObject = New JsonObject(); 

innen für Schleife

Verwandte Themen