将arraylist转换为微调器的数组

时间:2014-01-19 01:27:44

标签: java android arrays arraylist spinner

我有一个2-6项的arraylist。这些项通过一些if / else语句添加。 我必须将这个arraylist(listFartoy)转换为数组(arrayFartoy),以便它在微调器中工作。

我使用以下方法:

String[] arrayFartoy = new String[listFartoy.size()];
arrayFartoy = listfartoy.toArray(arrayFartoy);

似乎工作正常。

但是当我把它放在旋转器内时它不会工作。 行arrayFartoy [position]变红。

ArrayAdapter<String> adapterFartoy = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_item, arrayFartoy);
        adapterFartoy.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
        spinner_fartoy.setAdapter(adapterFartoy);

        spinner_fartoy.setOnItemSelectedListener(new OnItemSelectedListener() {
            @Override
            public void onItemSelected(AdapterView<?> arg0, View arg1,
                    int position, long id) {
                selectedFartoy = arrayFartoy[position];

            }

            @Override
            public void onNothingSelected(AdapterView<?> arg0) {
            }
        });

当我使用带有普通数组的旋转器/适配器时,它运行良好,所选项目存储在“selectedFartoy”中。

适用于此:

String[] arrayFartoy = new String[] { "Tarot T960", "Tarot FY680", "Ecilop",
        "Sexycopter", "Skywalker" };

1 个答案:

答案 0 :(得分:0)

我认为您不希望将ArrayList转换为String数组。因为你可以直接将arrayList传递给ArrayAdapter。像:

ArrayAdapter<String> adapterFartoy = new ArrayAdapter<String>(this,
            android.R.layout.simple_spinner_item, listfartoy);
adapterFartoy.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner_fartoy.setAdapter(adapterFartoy);

    spinner_fartoy.setOnItemSelectedListener(new OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> arg0, View arg1,
                int position, long id) {
            selectedFartoy = listfartoy.get(position);

        }

        @Override
        public void onNothingSelected(AdapterView<?> arg0) {
        }
    });