Spinner

#一.概述

在这里给大家分享一个Android UI控件Spinner,下拉选择框,我是这么理解的,能力有限,写的不对的地方还请多多指教,不喜勿喷哦,kensoon918@163.com only for feedback

#二.Spinner 简介

Google官方文档是这样介绍Spinner的,Spinner提供了更快速的方法,让你在一个集合里面选择一个值。Spinner只显示一个值,当你触摸它的时候其他可以选择的值将以下拉列表的形式展示出来,你可以选择任意一个下拉列表展示出来的值。 附上图片: QQ_20160430105124

#三.添加 Spinner

像其他Anroid View一样,你有两种添加方式。一种就是在Xml文件里面添加,另一种就是通过代码动态添加。

Xml 里面添加Spinner

<Spinner
android:id="@+id/planets_spinner"
android:layout_width="wrap_content"
android:layout_height="wrap_content" />

>在`Xml` 中`Spinner` 其他属性:

>dropDown水平偏移量: `android:dropDownHorizontalOffset`
dropDown垂直偏移量: `android:dropDownVerticalOffset`
dropDownSelector:`android:dropDownSelector`
dropDown背景 : `android:popupBackground` 
dropDown宽度:`android:dropDownWidth`
spinnerMode: `android:spinnerMode`
gravity:`android:gravity`
prompt : `android:prompt`

>可以通过如下的构造函数动态添加`Spinner`:

>`Spinner(Context context)`
`Spinner(Context context, int mode)`
`Spinner(Context context, AttributeSet attrs)`
`Spinner(Context context, AttributeSet attrs, int defStyleAttr)`
`Spinner(Context context, AttributeSet attrs, int defStyleAttr, int mode)`
`Spinner(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes, int mode)`
`Spinner(Context context, AttributeSet attrs, int defStyleAttr, int defStyleRes, int mode, Resources.Theme popupTheme)`

#三. 给`Spinner` 添加 `Adapter`
>添加完`Spinner`过后,你需要给`Spinner`添加一个`SpinnerAdapter`,Google文档介绍的`SpinnerAdapter`直接子类有:

>`ArrayAdapter<T>`
`BaseAdapter, CursorAdapter`
`ResourceCursorAdapter`
`SimpleAdapter`
`SimpleCursorAdapter`
`ThemedSpinnerAdapter`

>你只需要创建上面任意一个,然后添加给`Spinner`,例如:

>```java
       //找到 Spinner
        Spinner spinner = (Spinner) findViewById(R.id.planets_spinner);
        //items 数组
        String[] arrays = new String[]{
                "item1",
                "item2",
                "item3"
        };
        //ArrayAdapter 适配器
        ArrayAdapter<String> mAdapter = new ArrayAdapter<String>(this,
                android.R.layout.simple_spinner_dropdown_item, arrays);
        //给Spinner 设置适配器
        spinner.setAdapter(mAdapter);

#四. 给Spinner 设置监听器

最后一步当然是给Spinner设置监听器了,设置监听器的方法有很多,这里只给大家演示一种,如下:

    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
            //选择了
        }
        @Override
        public void onNothingSelected(AdapterView<?> parent) {
            //没有选择
        }
    });

#五. 总结
> 总的来说`Spinner `是个不错的View,给本来就小的手机屏幕节约了不少的空间,这的推荐。如果要获得选中的值何以使用 
```java
mSpinner.getSelectedItem().toString();

转载于:https://my.oschina.net/kensoon/blog/704752

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值