Spinners

spinners 提供一种从一组选项中快速的选择一个。在默认状态下,spinner显示当前的默认值,触摸spinner组件的话,会显示一个下来菜单,提供所有可以选择的值,供用户选择一个新的选项.
你可以在layout文件中添加spinner组件,如下所示。
<Spinner
    android:id="@+id/planets_spinner"
    android:layout_width="fill_parent"
    android:layout_height="wrap_content" />
当时spinner的下来菜单中的选项是从哪里来的呢?答案是从spinnerAdapter中来.如果可选项是以数组的方式提供,一般使用arrayAdapt,如果是一个数据库的方式提供,则使用CursorAdapter.下面我们看一个arrayAdapt的例子
一般现在资源文件中添加一个字符数组,如下所示:
<?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 中找到spinner组件并设定它的adapt,code如下所示:
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 运行你从字符数组中创建一个ArrayAdapt.android.R.layout.simple_spinner_item sh是由Android 系统提供的,表示字符数组中的每一项在spinner中的样式.
还需要调用setDropDownViewResource(int)来指定显示spinner 选项list中的layout adapt.
最后调用spinner.setAdapter(adapter);来设定adapt.


那我们是怎么知道当前用户选择spinner中的哪一项呢?
这就需要我们实现 AdapterView.OnItemSelectedListener接口,如下所示:
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
    }
}
这时就可以通过pos 获得用户选择array中的哪一项
最后就要setOnItemSelectedListener 来告诉spinner这个实现这个接口的毁掉函数.
Spinner spinner = (Spinner) findViewById(R.id.spinner);
spinner.setOnItemSelectedListener(this);
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值