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 :)
Haben Sie die Arraylist Größe überprüft ein Protokoll verwenden, bevor es mit dem Adapter auf OnPostExecute Fütterung()? –
Verschieben Sie den gesamten Parsing-Code in 'for (int i = 0; i
ja, das habe ich überprüft. Alle Werte sind in Arraylist vorhanden, aber nicht im Endergebnis –