2013-10-07 2 views
0

하나의 요소가있는 listInterator가 있습니다. 나는 다음 요소가있는 이드를 알아야 할 필요가있는 함수를 가지고있다. 그러나 hasNext() 메서드는 항상 true를 retourning합니다.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()가 정상적으로 작동하고 있습니다. 그러나 hasNext()는 배열의 한 요소 만 가지고도 true로 retoutning됩니다.

+0

코드 번호 – 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와 같은 것을 nedd했다. 다음 이미지가 변경되면 다음 이미지가 변경되어 다른 이미지로 변경됩니다. – Roland

+0

제 편집문을 보시고, –

+0

을 추가하셨습니다. 귀하가 말한대로했으나 작동하지 않습니다. 이 함수는 버튼의 oncliclistener 내부에 있습니다. – Roland

관련 문제