如何在spinner中添加str中的项目?我尝试使用ArrayList,ArrayAdapter,但没有工作......
String[] str={"item 1","item 2","item 3"};
Spinner s=(Spinner)findViewById(R.id.spinner);
答案 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
构造函数它的论点如下所示:
你可以这样做:
ArrayAdapter<String> mArrayAdapter = new ArrayAdapter<String>(getApplicationContext(),R.layout.your_layout,mYourList)
其中mYourList可以是ArrayList<String>
,您可以在其中存储要用Spinner
填充的数据。
答案 2 :(得分:1)
Android Spinner
使用SpinnerAdapter
类。
http://developer.android.com/reference/android/widget/SpinnerAdapter.html