基础UI组件-spinner

来源:互联网 发布:云购源码 编辑:程序博客网 时间:2024/06/05 16:13

Spinner提供了从一个数据集合中快速选择一项值的办法。默认情况下Spinner显示的是当前选择的值,点击Spinner会弹出一个包含所有可选值的dropdown菜单,从该菜单中可以为Spinner选择一个新值。
这里写图片描述
上图显示的是Spinner常见的样式。这篇文章中我将讨论1.Spinner的基本用法
1.在布局文件中添加Spinner控件

<?xml version="1.0" encoding="utf-8"?><LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"    android:layout_width="fill_parent"    android:layout_height="fill_parent"    android:orientation="vertical" >    <Spinner        android:layout_width="match_parent"        android:layout_height="wrap_content"        android:id="@+id/spinner_city"        android:entries="@array/city"/></LinearLayout>

其中android:entries=”@array/city”表示Spinner的数据集合是从资源数组languages中获取的,city数组资源定义在values/strings.xml中:

<resources>    <string name="app_name">SwitchTheme</string>    <array name="city">        <item>北京</item>        <item>上海</item>        <item>天津</item>        <item>大连</item>        <item>广州</item>        <item>郑州</item>    </array></resources>
package com.example.by.switchtheme;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.widget.ArrayAdapter;import android.widget.Spinner;public class MainActivity extends ActionBarActivity {    private Spinner spinnerroles;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);    }}

如果你不需要对Spinner的选择事件做响应,那么一个完整的Spinner使用流程就结束了。

运行结果:
这里写图片描述
2.设置Spinner的Adapter
上面使用Spinner数据源于xml数组,其实用的最多的还是通过adapter来跟Spinner绑定数据。
使用ArrayAdapter
2.1

package com.example.by.switchtheme;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.widget.ArrayAdapter;import android.widget.Spinner;public class MainActivity extends ActionBarActivity {    private Spinner spinnerroles;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        spinnerroles= (Spinner) findViewById(R.id.spinner2_role);        String []roles={"管理员","会员","游客"};        //方式1适配器(上下文,下拉列表里的布局,显示下拉选项的组件的ID,数据)        ArrayAdapter<String> adapter=new ArrayAdapter<String>(this,android.R.layout.simple_dropdown_item_1line,android.R.id.text1,roles);        spinnerroles.setAdapter(adapter);    }}

结果是:
这里写图片描述

2.2

package com.example.by.switchtheme;import android.os.Bundle;import android.support.v7.app.ActionBarActivity;import android.widget.ArrayAdapter;import android.widget.Spinner;public class MainActivity extends ActionBarActivity {    private Spinner spinnerroles;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        spinnerroles= (Spinner) findViewById(R.id.spinner2_role);        String []roles={"管理员","会员","游客"};       //方式2        ArrayAdapter adapter1=ArrayAdapter.createFromResource(this,R.array.city,android.R.layout.simple_spinner_dropdown_item);        adapter1.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);        spinnerroles.setAdapter(adapter1);    }}

结果是:
这里写图片描述

0 0