Ich habe eine Arraylist erstellt, um Daten zu speichern, die von einem Webservice abgerufen werden.Daten werden nach jeder Iteration abgerufen, aber nur das letzte Element wird in Arraylist angezeigt. Ich habe verschiedene Lösungen ausprobiert, aber keine von ihnen scheinen hilfreich in meinem FallArraylist zeigt immer das letzte Element n mal
public void onResponse(JSONObject paramAnonymousJSONObject)
{
JSONObject localJSONObject;
int j;
try
{
localJSONObject = paramAnonymousJSONObject.getJSONObject("status");
j = localJSONObject.getInt("code");
if (j == 200) {
JSONArray carModelArray = paramAnonymousJSONObject.getJSONArray("carModels");
for (int i = 0; i <= carModelArray.length(); i++) {
JSONObject tariffResponse = null;
JSONObject tariff = carModelArray.getJSONObject(i);
try {
carId = tariff.getString("id");
segment = tariff.getString("segment");
imageURL = tariff.getString("imageURL");
tariffResponse = tariff.getJSONObject("tariffResponse");
CarType = tariffResponse.getString("carModel");
weekdayTariff = tariffResponse.getString("weekdayTariff");
weekendTariff = tariffResponse.getString("weekendTariff");
peakSeasonTariff = tariffResponse.getString("peakSeasonTariff");
maintenanceCharge = tariffResponse.getString("maintainanceFee");
securityDeposite = tariffResponse.getString("securityDeposite");
ArrayList arrayList = TariffActivity.this.tariffModelsList;
arrayList.add(new TariffModel(carId, CarType, imageURL, "\u20b9 " + weekdayTariff, "\u20b9 " + weekendTariff, "\u20b9 " + peakSeasonTariff, "\u20b9 " + securityDeposite, segment, "\u20b9 " + maintenanceCharge));
TariffActivity.this.tariffAdapter = new TariffAdapter(TariffActivity.this.mContext,arrayList);
TariffActivity.this.mRecyclerView.setAdapter(tariffAdapter);
} catch (JSONException e) {
e.printStackTrace();
}
}
Willkommen bei Stack Overflow! Es sieht so aus, als müssten Sie lernen, einen Debugger zu verwenden. Bitte helfen Sie sich selbst [https://ericlippert.com/2014/03/05/how-to-debug-small-programs/].Wenn Sie danach noch Probleme haben, können Sie gerne weitere Einzelheiten erfahren. –
Wenn Sie Retrofit + Gson verwenden, müssten Sie Ihren JSON –
@shivadeep nicht manuell parsen, TrafficAdapter wird an falscher Stelle gesetzt, da er innerhalb der Schleife liegt - der Wert wird überschrieben und der letzte Wert der Arraylist wird auf gesetzt es. Also müssen Sie die Arraylist dem Traffic-Adapter zuweisen, nachdem die Schleife endet, überprüfen Sie bitte meine Antwort unter –