如何在Spinner Android中添加项目

时间:2014-07-18 12:38:42

标签: android spinner

如何在spinner中添加str中的项目?我尝试使用ArrayList,ArrayAdapter,但没有工作......

String[] str={"item 1","item 2","item 3"}; 
Spinner s=(Spinner)findViewById(R.id.spinner);

3 个答案:

答案 0 :(得分:19)

您可以使用简单的默认ArrayAdapter动态地满足您的要求。下面是您可以遵循的代码段,并修改您的onCreate方法以在微调器中添加值。

    spinner = (Spinner) findViewById(R.id.spinner);
    ArrayAdapter<String> adapter;
    List<String> list;

    list = new ArrayList<String>();
    list.add("Item 1");
    list.add("Item 2");
    list.add("Item 3");
    list.add("Item 4");
    list.add("Item 5");
    adapter = new ArrayAdapter<String>(getApplicationContext(),
            android.R.layout.simple_spinner_item, list);
    adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
    spinner.setAdapter(adapter);

如果要静态添加微调器值,可以在xml文件中添加数组,并为微调器指定属性entries。下面是该代码段。

您的布局xml文件

<Spinner android:id="@+id/spinner"  
    android:layout_width="fill_parent"                  
    android:drawSelectorOnTop="true"
    android:prompt="@string/spin"
    android:entries="@array/items" />

在您的arrays.xml文件中

<string-array name="items">
    <item>Item 1</item>
    <item>Item 2</item>
    <item>Item 3</item>
    <item>Item 4</item>
    <item>Item 5</item>
</string-array>

答案 1 :(得分:2)

Android参考有一个很好的例子,而不是使用:

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
    R.array.planets_array, android.R.layout.simple_spinner_item);

如示例中所示(这是因为Spinner是从xml文件中定义的预先存在的字符串数组资源填充的)您可以使用接受List的ArrayAdapter构造函数它的论点如下所示:

  

http://developer.android.com/reference/android/widget/ArrayAdapter.html#ArrayAdapter%28android.content.Context,%20int,%20java.util.List%3CT%3E%29

你可以这样做:

ArrayAdapter<String> mArrayAdapter = new ArrayAdapter<String>(getApplicationContext(),R.layout.your_layout,mYourList)

其中mYourList可以是ArrayList<String>,您可以在其中存储要用Spinner填充的数据。

答案 2 :(得分:1)