为什么我在微调器中获取数组的最后一个值?

时间:2018-02-17 11:42:11

标签: android

为什么我只得到数组的最后一个值。我的数组“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);

        }

1 个答案:

答案 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);