为什么listInterator.hasNext()总是返回true?

时间:2013-10-07 18:32:29

标签: java android

我有一个只有一个元素的listInterator。我有一个函数需要知道id它有下一个元素。但是方法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。

1 个答案:

答案 0 :(得分: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);
        }