您的位置:首页 > 产品设计 > UI/UE

[置顶] 基础UI组件-spinner

2016-08-11 23:57 597 查看
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);
}
}


结果是:

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: