итератор имеет элемент, но hasnext не возвращает true - PullRequest
0 голосов
/ 07 марта 2020

enter image description here

while (iter.hasNext ()) итератор имеет элементы, но условие не работает. Что там не так?

iter= productDataList.iterator();

public void CalcPrice(View v){
        while(iter.hasNext()){
            if(iter.next().name.equals(pName)){
                price=Integer.parseInt(iter.next().price);
            }
        }
        edPrice.setText("Tutar : "+price);
    }

1 Ответ

2 голосов
/ 07 марта 2020

Проблема в том, что вы звоните iter.next() дважды для одних и тех же данных.

Сделайте это следующим образом:

iter= productDataList.iterator();

public void CalcPrice(View v){
    while(iter.hasNext()){
        Product productData = iter.next()
        if(productData.name.equals(pName)){
            price=Integer.parseInt(productData.price);
            break;
        }
    }
    edPrice.setText("Tutar : "+price);
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...