Android:以编程方式从Spinner创建ArrayList

时间:2018-11-23 12:53:56

标签: java android arrays spinner

我有一个在XML文件中创建的微调器:

<Spinner
    android:id="@+id/unitSpinner"
    android:entries="@array/units" />

其条目在array.xml

中定义
<string-array name="units">
    <item>g</item>
    <item>kg</item>
    <item>ml</item>
    <item>l</item>
    <item>szt.</item>
    <item>op.</item>
</string-array>

现在,我想在Java文件中创建一个ArrayList<String>,在将Spinner的条目输入后,其内容为:

["g", "kg", "ml", "l", "szt.", "op."]

我的Java代码如下:

Spinner unit = (Spinner) findViewById(R.id.unitSpinner);
ArrayList<String> array = new ArrayList<>();
//pass information from unit to array

编辑:

这个问题不同于Android : Fill Spinner From Java Code Programmatically之类的许多问题,因为我不想用数组来填充Spinner,而是相反。

1 个答案:

答案 0 :(得分:4)

您可以直接从XML数组中获取列表。无需从微调器中获取ti

String[] ss  = getResources().getStringArray(R.array.units);
ArrayList<String> array = Arrays.asList(words);

如果此方法无法解决您的问题,您可以尝试通过循环从微调器中获取所有项目

    for( int i = 0  ; i< unit.getAdapter().getCount() ; i++ ){
                array.add ( ss.getAdapter().getItem( i ) )

}

希望这会有所帮助。