原
旋转器提供了从集合中选择一个值的快速方法。在默认状态下,微调器显示其当前选定的值。触摸微调器会显示一个包含所有其他可用值的下拉菜单,用户可以从中选择一个新值。
您可以使用Spinner对象向布局添加微调器。您通常应该在XML布局中使用<Spinner>元素执行此操作。例如:
<Spinner
android:id="@+id/planets_spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
要使用选项列表填充微调器,您需要SpinnerAdapter在您的Activity或Fragment 源代码中指定一个。
关键类如下:
Spinner
SpinnerAdapter
AdapterView.OnItemSelectedListener
使用用户选择填充微调器
您为微调器提供的选择可以来自任何源,但必须通过一个来提供SpinnerAdapter,例如,ArrayAdapter如果数组中有CursorAdapter选项,或者数据库查询中有选项可用。
例如,如果预先确定了微调器的可用选项,则可以为它们提供在字符串资源文件中定义的字符串数组:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string-array name="planets_array">
<item>Mercury</item>
<item>Venus</item>
<item>Earth</item>
<item>Mars</item>
<item>Jupiter</item>
<item>Saturn</item>
<item>Uranus</item>
<item>Neptune</item>
</string-array>
</resources>
使用这样的数组,您可以使用以下代码Activity或使用以下Fragment实例为微调器提供数组ArrayAdapter:
Spinner spinner = (Spinner) findViewById(R.id.spinner);
// Create an ArrayAdapter using the string array and a default spinner layout
ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this,
R.array.planets_array, android.R.layout.simple_spinner_item);
// Specify the layout to use when the list of choices appears
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// Apply the adapter to the spinner
spinner.setAdapter(adapter);
该createFromResource()方法允许您ArrayAdapter从字符串数组创建。此方法的第三个参数是布局资源,用于定义所选选项在微调控件中的显示方式。该simple_spinner_item布局由平台提供,是你应该使用,除非你想定义微调的外观自己的布局的默认布局。
然后,您应该调用setDropDownViewResource(int)以指定适配器应该用于显示微调器选择列表的simple_spinner_dropdown_item布局(是平台定义的另一个标准布局)。
致电setAdapter()将适配器应用于您的 Spinner。
响应用户选择
当用户从下拉列表中选择项目时,该Spinner对象接收项目选择的事件。
要为微调器定义选择事件处理程序,请实现AdapterView.OnItemSelectedListener接口和相应的onItemSelected()回调方法。例如,这是一个接口的实现Activity:
public class SpinnerActivity extends Activity implements OnItemSelectedListener {
...
public void onItemSelected(AdapterView<?> parent, View view,
int pos, long id) {
// An item was selected. You can retrieve the selected item using
// parent.getItemAtPosition(pos)
}
public void onNothingSelected(AdapterView<?> parent) {
// Another interface callback
}
}
的AdapterView.OnItemSelectedListener要求onItemSelected()和onNothingSelected()回调方法。
然后,您需要通过调用setOnItemSelectedListener()以下命令来指定接口实现:
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(this);
如果AdapterView.OnItemSelectedListener使用Activity或实现接口Fragment(例如上面的示例),则可以this作为接口实例传递 。
联系我
QQ:94297366
微信打赏:https://pan.baidu.com/s/1dSBXk3eFZu3mAMkw3xu9KQ
公众号推荐: