为什么我只得到数组的最后一个值。我的数组“arr”包含值列表,但是当我在spinner中使用它时,我只得到数组的最后一个值。在此先感谢!!!
public void addItemsOnSpinner2(String[] arr) {
List list = new ArrayList(Arrays.asList(arr));
//System.out.println("Function Currency value===>"+list);
System.out.println("Function Currency value===>"+Arrays.toString(arr));
ArrayAdapter<String> dataAdapter = new ArrayAdapter<String>(this,
android.R.layout.simple_spinner_item, list);
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner2.setAdapter(dataAdapter);
}
List<Currency> dataList = currencyExchange.getCurrencyList();
Iterator<Currency> iterator = dataList.iterator();
while (iterator.hasNext()) {
try {
//System.out.println("hhhhhhhhhhh=>" + iterator.next().getName());
currencyName= iterator.next().getName();
//String[] words=currencyName.split(" ");
arr=currencyName.split(" ");
System.out.println("Currencyname==>"+ Arrays.toString(arr));
}
catch (NoSuchElementException e){
System.out.println("Continue");
}
addItemsOnSpinner2(arr);
}
答案 0 :(得分:0)
你只是获得最后一个值的原因,因为在你正在使用的while循环中 一个变量,所以当你更新iterator的新值时,它就是 取而代之的是旧值
将迭代器转换为 ArrayList ,如下所示:
Iterator<Currency> iterator = dataList.iterator();
List<String> arList= Lists.newArrayList(iterator);
然后像这样调用你的方法 addItemsOnSpinner2(String [] arr):
addItemsOnSpinner2(arList);
<强> 编辑: 强>
替换
while (iterator.hasNext()) {
try {
//System.out.println("hhhhhhhhhhh=>" + iterator.next().getName());
currencyName= iterator.next().getName();
//String[] words=currencyName.split(" ");
arr=currencyName.split(" ");
System.out.println("Currencyname==>"+ Arrays.toString(arr));
}
catch (NoSuchElementException e){
System.out.println("Continue");
}
addItemsOnSpinner2(arr);
与
String[] arr = dataList.toArray();
addItemsOnSpinner2(arr);