我創建了一個ArrayList來存儲從webservice獲取的數據。每次迭代後都會獲取數據,但只有最後一個元素顯示在arraylist中。我嘗試了各種解決方案,但沒有在我的情況下似乎很有幫助Arraylist不斷顯示最後一個元素n次數
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();
}
}
歡迎使用堆棧溢出!它看起來像你需要學習使用調試器。請幫助一些[互補調試技術](https://ericlippert.com/2014/03/05/how-to-debug-small-programs/)。如果您之後仍然有問題,請隨時返回更多詳情。 –
如果你使用Retrofit + Gson,你不需要手動解析你的JSON –
@shivadeep,TrafficAdapter被設置在不正確的地方,因爲它在循環內部 - 值被覆蓋,因此arraylist的最後一個值被設置爲它。 所以你必須在循環結束後將數組列表分配給交通適配器,請在 –