我有一个动态生成的数组列表,它有能力存储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。
答案 0 :(得分:1)
您可以简单地使用当前索引并使用setSelection
方法,如下所示:
public void showNext(View v){
int nextIndex = sp.getSelectedItemPosition()+1;
if(nextIndex < spItems.size())
{
sp.setSelection(nextIndex);
}
}
如果您不想直接使用getSelectedItemPosition
,可以保留一个全局整数变量currentIndex
,并将其设置在微调器的onItemSelected
方法中。并在按钮点击方法中使用它。
希望它有所帮助。