【发布时间】:2014-09-09 14:32:58
【问题描述】:
如何在微调器中从 str 添加项目?我尝试了 ArrayList、ArrayAdapter 但没有用...
String[] str={"item 1","item 2","item 3"};
Spinner s=(Spinner)findViewById(R.id.spinner);
【问题讨论】:
如何在微调器中从 str 添加项目?我尝试了 ArrayList、ArrayAdapter 但没有用...
String[] str={"item 1","item 2","item 3"};
Spinner s=(Spinner)findViewById(R.id.spinner);
【问题讨论】:
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 的数据。
【讨论】:
您可以使用简单的默认 ArrayAdapter 来动态实现您的要求。下面是代码 sn-p 您可以遵循并修改您的 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。下面是sn-p的代码。
您的布局 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>
【讨论】:
Android Spinners 使用 SpinnerAdapter 类。
http://developer.android.com/reference/android/widget/SpinnerAdapter.html
【讨论】: