2013-10-07 5 views
0

У меня есть listInterator, в котором есть только один элемент. У меня есть функция, необходимая знать id, в которой есть следующий элемент. Но метод hasNext() всегда возвращает true.Почему listInterator.hasNext() всегда возвращает true?

Этот код находится внутри oncliclistener кнопки. Я просто хочу: когда пользователь нажмет эту кнопку, если следующий элемент изменит какое-то изображение, если не изменится на другое изображение.

ListIterator<String> lInterator = datas.listIterator(datas.size() - 1); 

    if(lInterator.hasNext()){ 
      imgDataProxima.setBackgroundResource(R.drawable.bt_next); 
     } else {      
      imgDataProxima.setBackgroundResource(R.drawable.btcheckin_next_disabled); 
     } 

     if(lInterator.hasPrevious()){ 
      imgDataAnterior.setBackgroundResource(R.drawable.bt_previous); 
     } else { 
      imgDataAnterior.setBackgroundResource(R.drawable.btcheckin_previous_disabled); 
     } 

С моим тестом я занимаюсь только одним элементом массива. HasPreviuos() является woking ok. Но hasNext() возвращает true даже с одним элементом массива.

+0

показать свой кодv – stinepike

+4

Потому что вы никогда не перемещаете «позицию» итератора. –

+0

Этот код находится внутри кнопки oncliclistener. Я просто хочу: когда пользователь нажмет эту кнопку, если следующий элемент изменит какое-то изображение, если не изменится на другое изображение. – Roland

ответ

1

Вы должны реализовать lInterator.next() для перемещения курсора вперед.

if(lInterator.hasNext()){ 
      imgDataProxima.setBackgroundResource(R.drawable.bt_next); 
      lInterator.next(); // add this row 
     } else {      
      imgDataProxima.setBackgroundResource(R.drawable.btcheckin_next_disabled); 
     } 

     if(lInterator.hasPrevious()){ 
      imgDataAnterior.setBackgroundResource(R.drawable.bt_previous); 
     } else { 
      imgDataAnterior.setBackgroundResource(R.drawable.btcheckin_previous_disabled); 
     } 
+0

Пока не будет работать. Я добавил что-то вроде If/Else. Если в следующий раз это изменит изображение, если оно не будет следующего, оно изменится на другое изображение. – Roland

+0

см. Мое редактирование, я добавил –

+0

Я сделал то, что вы сказали, но это не работает. Эти функции находятся внутри кнопки oncliclistener. – Roland

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