2016-04-11 2 views
-2

У меня есть указатель, который возвращает 5 значений из запроса. Я хочу перезаписать 5 существующих значений arraylist результатами из запроса db. В моем коде ниже цикл while только перезаписывает первое значение Arraylist.Использование цикла while для перезаписывания значений Arraylist

Кто-нибудь знает, что я делаю неправильно?

List<String> distancearray = new ArrayList<String>(); 
distancearray.add("0"); 
distancearray.add("0"); 
distancearray.add("0"); 
distancearray.add("0"); 
distancearray.add("0"); 

while(DistanceArray.moveToNext()){ 
    String uname = DistanceArray.getString(DistanceArray.getColumnIndex("distance")); 
    int i = 0; 
    distancearray.set(i, uname); 
    i++; 
} 

ответ

2

Вы сброс i до 0 в каждой итерации цикла.

Move

int i = 0; 

раньше петли

int i = 0; 
while(DistanceArray.moveToNext()){ 
    String uname = DistanceArray.getString(DistanceArray.getColumnIndex("distance")); 
    distancearray.set(i, uname); 
    i++; 
} 
1

Вы инициализацией i 0 на каждой итерации. Вы должны перенести свою декларацию за пределами цикла:

int i = 0; 
while (DistanceArray.moveToNext()) { 
    String uname = DistanceArray.getString(DistanceArray.getColumnIndex("distance")); 
    distancearray.set(i, uname); 
    i++; 
} 

Я советую вам иметь чеки на i, чтобы избежать недоступных проблем. Также, пожалуйста, используйте отладчик в будущем, это действительно поможет вам лучше понять ваш поток кода и проблемы.

Смежные вопросы