我有一个动态生成的数组列表,它总共可以存储 5 个元素。现在这个数组列表可以包含 2,3,4,5,6 作为元素。有时,其中一些元素可能会丢失,因为它是动态生成的。我想通过单击按钮在数组列表中切换微调器中的位置。如何跟踪显示的元素并移动到下一个元素?
例如,在 onCreate 中,我检测 Arraylist 的第一个元素(如果我设置为 2)
spin.setSelectedItem(aList.get(1));
上面将我在微调器中的选择设置为 2。
单击按钮时我想切换到列表中的下一个元素 - 这里的问题是下一个元素可以存在或不存在我使用以下检查:
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)));
其中 spin 是我的微调器,pages 是我拥有的数组列表。
最佳答案
您可以简单地使用当前索引并使用 setSelection
方法,如下所示:
public void showNext(View v){
int nextIndex = sp.getSelectedItemPosition()+1;
if(nextIndex < spItems.size())
{
sp.setSelection(nextIndex);
}
}
如果你不想直接使用getSelectedItemPosition
,你可以保留一个全局整型变量currentIndex
,并在onItemSelected
中设置它旋转器的方法。并在按钮单击方法中使用它。
希望有帮助。
关于java - 根据 ArrayList 中的值切换微调器中的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27653611/