Android API Guides---Spinners

来源:互联网 发布:刚买的域名被墙 编辑:程序博客网 时间:2024/05/18 02:09

Spinners

提供了一个快速的方法来选择一组一个值。在默认状态下,旋转器显示其当前所选的值。触摸喷丝显示一个下拉菜单与所有其他可用的值,从该用户可以选择一个新的


您可以将微调添加到使用微调对象布局。通常你应该用<微调>元素的XML布局这样做。 例如:

<Spinner    android:id="@+id/planets_spinner"    android:layout_width="fill_parent"    android:layout_height="wrap_content" />
为了填充一个选择列表微调,那么你需要在活动或片段的源代码,以指定一个微调适配器。
填充用户的选择微调
您提供的微调的选择可以来自任何来源,但必须通过SpinnerAdapter提供,比如如果选择是提供一个数组或一个的CursorAdapter如果选择可从数据库查询的ArrayAdapter。
举例来说,如果你的微调可用的选择是预先确定的,可以为他们提供一个字符串资源文件中定义的字符串数组:

<?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>
对于数组像这样的,你可以使用下面的代码在你的活动或片段与使用ArrayAdapter的一个实例数组提供微调:

Spinner spinner = (Spinner) findViewById(R.id.spinner);// Create an ArrayAdapter using the string array and a default spinner layoutArrayAdapter<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 appearsadapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);// Apply the adapter to the spinnerspinner.setAdapter(adapter);
该createFromResource()方法允许你创建从字符串数组ArrayAdapter。该方法的第三个参数是定义选择的选择如何出现在微调控件的布局资源。该simple_spinner_item布局由平台提供,是你应该使用,除非你想定义微调的外观自己的布局的默认布局。


那么你应该调用setDropDownViewResource(int)以指定布局适配器应该用于显示的微调选项列表(simple_spinner_dropdown_item是由平台定义的另一个标准配置)。


调用setAdapter()将适配器适用于您的微调。


响应用户的选择


当用户从下拉菜单中的项目时,微调对象接收到关于项目选择的事件。


要定义一个微调的选择事件处理程序,实现了AdapterView.OnItemSelectedListener接口和相应的onItemSelected()回调方法。例如,这里有一个活动的接口的实现:

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接口,可以通过这个作为接口实例。

0 0