Android: старые записи ArrayList перезаписываются новыми - PullRequest
0 голосов
/ 22 февраля 2012

Я получаю информацию о местах из моей базы данных.Получив их, я хочу сохранить их в ArrayList (который является «ArrayList of Places», однако каждый раз, когда пишется новая запись, она также перезаписывает предыдущие записи. Я проверяю это, печатая журнал. Ниже).сегмент кода:

response = CustomHttpClient.executeHttpPost("http://www.testing.com
/requestPlaces.php", postParameters);

            JSONArray jArray = new JSONArray(response);

            for(int i = 0; i < jArray.length() ; i++)
            {
                Places place = new Places();
                JSONObject jObj = jArray.getJSONObject(i);
                place.setPlace(
                        jObj.optString("placeID"), 
                        jObj.optString("placeName"), 
                        jObj.optString("placeType"),
                        jObj.optString("placeLat"),
                        jObj.optString("placeLng"),
                        jObj.optString("placePict"),
                        jObj.optString("placeRegion"));

                arrPlace.add(place);
                for(int j = 0; j <= i ; j++)
                {
                    Log.e("log_tag2", arrPlace.get(j).getPlaceID());
                }

Это то, что распечатывает мой журнал, который показывает, что предыдущая запись была перезаписана:

02-22 16:30:26.538: E/log_tag2(6148): p0001
02-22 16:30:26.538: E/log_tag(6148): p0002
02-22 16:30:26.538: E/log_tag2(6148): p0002
02-22 16:30:26.538: E/log_tag2(6148): p0002
02-22 16:30:26.538: E/log_tag(6148): p0003
02-22 16:30:26.538: E/log_tag2(6148): p0003
02-22 16:30:26.538: E/log_tag2(6148): p0003
02-22 16:30:26.538: E/log_tag2(6148): p0003
02-22 16:30:26.538: E/log_tag(6148): p0004
02-22 16:30:26.538: E/log_tag2(6148): p0004
02-22 16:30:26.538: E/log_tag2(6148): p0004
02-22 16:30:26.538: E/log_tag2(6148): p0004
02-22 16:30:26.538: E/log_tag2(6148): p0004

Ответы [ 2 ]

4 голосов
/ 22 февраля 2012

Я бы предположил, что у вас есть static поля вместо полей экземпляра в вашем Places классе. Удалите модификатор static:

class Places {
    static int id;
}

например:

class Places {
    int id;
}
0 голосов
/ 22 февраля 2012

может быть, вы также хотите сохранить цикл выхода из цикла, где вы добавляете в список.

for(int i = 0; i < jArray.length() ; i++)
      {
                Places place = new Places();
                JSONObject jObj = jArray.getJSONObject(i);
                place.setPlace(
                        jObj.optString("placeID"), 
                        jObj.optString("placeName"), 
                        jObj.optString("placeType"),
                        jObj.optString("placeLat"),
                        jObj.optString("placeLng"),
                        jObj.optString("placePict"),
                        jObj.optString("placeRegion"));

                arrPlace.add(place);
                 }
                for(int j = 0; j <= i ; j++)
                {
                    Log.e("log_tag2", arrPlace.get(j).getPlaceID());
                }
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...