基于ArrayList中的值在微调器中切换值

时间:2014-12-26 06:29:15

标签: java android

我有一个动态生成的数组列表,它有能力存储5个元素。现在这个arraylist可以包含2,3,4,5,6作为元素。有时这些元素中的一些可能会因为动态生成而丢失。我想在点击按钮的基础上在数组列表中切换Spinner中的位置。如何跟踪显示哪个元素并移动到下一个元素?

例如在onCreate中我检测到Arraylist的第一个元素,如果它是2我设置

spin.setSelectedItem(aList.get(1));

以上在旋转器中将我的选择设为2。

on Button单击我想切换到列表中的下一个元素 - 这里的问题是下一个元素是否存在我使用以下检查: if ((spin.getSelectedItemPosition()) < Integer.valueOf(pages.get(pages.size()-1)))

但是现在如何将Spinner值设置为上述if条件中的下一个元素?

修改

目前我正在做类似的事情:

int current = spin.getSelectedItemPosition();
int nextPos = (pages.indexOf(String.valueOf(current)))+1;
spin.setSelection(Integer.valueOf(pages.get(nextPos)));

旋转是我的微调器,页面是我的arraylist。

1 个答案:

答案 0 :(得分:1)

您可以简单地使用当前索引并使用setSelection方法,如下所示:

public void showNext(View v){
    int nextIndex = sp.getSelectedItemPosition()+1;
    if(nextIndex < spItems.size())
    {   
        sp.setSelection(nextIndex);
    }
}

如果您不想直接使用getSelectedItemPosition,可以保留一个全局整数变量currentIndex,并将其设置在微调器的onItemSelected方法中。并在按钮点击方法中使用它。

希望它有所帮助。