那么如何在android中的spinner中添加一个int数组

时间:2011-09-20 19:29:28

标签: java android spinner

所以我有一个int数组和一个微调器,我需要微调器来显示int数组的值。作为一个新手,我不知道如何将int数组添加到arrayadapter或simpleadapter。我也可以使用列表而不是数组,但它总是包含整数值。

mspin=(Spinner) findViewById(R.id.spinner1);
int[] items=new int[]{1,2,3,4};
ArrayAdapter<int[]> ad=new ArrayAdapter(this,android.R.layout.simple_spinner_item);

//ad.add(items); // this cause some value to be displayed, possible the id of the item.

mspin.setAdapter(ad);

谢谢

3 个答案:

答案 0 :(得分:12)

你必须使用Integer,而不是int。此语法有效:

Integer[] items = new Integer[]{1,2,3,4};
ArrayAdapter<Integer> adapter = new ArrayAdapter<Integer>(this,android.R.layout.simple_spinner_item, items);

答案 1 :(得分:1)

这不恰当吗?由于默认ArrayAdapter实施仅在每个项目上调用.toString()。也许您需要使用Integer代替(这是一个对象)。或者,您可以实现自己的自定义适配器扩展ArrayAdapter或移动到字符串数组开始。

答案 2 :(得分:0)

如果要从资源数组获取值,则应在整数项周围添加双引号,如下所示:

<array name="values">
    <item>"1"</item>
    <item>"2"</item>
    <item>"3"</item>
    <item>"4"</item>
    <item>"5"</item>
</array>

然后只需从资源中将值作为String数组获取并将其设置为适配器即可。

String[] values = getResources().getStringArray(R.array.values);
ArrayAdapter<String> ad = new ArrayAdapter(this, android.R.layout.simple_spinner_item, values);
mspin.setAdapter(ad);