Spinner的简单实用
1.Spinner的功能
- Spinner在Android中主要实现的是一个下拉列表,这个下拉列表相当于弹出一个弹出一个菜单供用户选择。即Spinner提供一个快速的方法从一组中选择一个值,默认状态下Spinner显示当前选择的值。触摸Spinner与其他所有可用值构成一个下拉菜单,用户可以选择一个新的值。
 
2.认识Spinner
- 声明:
 
public class Spinner
extends AbsSpinner
implements DialogInterface.OnClickListener
- 常用属性:
 
| 属性名称 | 属性实例 | 属性描述 | 
|---|---|---|
| entries | android:entries=”@array/city” | 使用数组资源设置该下拉列表框的列表项 | 
| dropDownWidth | android:dropDownWidth=”50sp” | 设置下拉列表项的宽度 | 
| spinnerMode | android:spinnerMode=”dialog” | 设置下拉列表项的显示方式: dialog和dropdown | 
| popupBackground | android:popupBackground=”#0ff” | 设置列表项背景 | 
| prompt | android:prompt=”提示信息” | 设置列表选择框的提示信息 | 
3.Spinner实例
- 在XML文件中定义数组资源,使用entries属性让Spinner展示列表项,注意属性entries的使用。code display02中style属性将Spinner设置为dialog的形式,以便将prompt属性设置的提示信息显示出来。
 
<!--code display01-->
<Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/spinner_city1"
        android:entries="@array/city"
        android:dropDownWidth="50sp"
        android:popupBackground="#0ff"
        android:spinnerMode="dropdown"/>
<!--code display02-->
<Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/spinner_city2"
        android:entries="@array/city"
        android:dropDownWidth="10sp"
        android:popupBackground="#0ff"
        android:prompt="@string/prompt_name"
        style="@android:style/Widget.Spinner" />
<resources>
    <string name="app_name">Spinner</string>
    <!--数组资源代码-->
    <array name="city">
        <item >北京</item>
        <item >杭州</item>
        <item >西安</item>
        <item >成都</item>
    </array>
</resources>
- 使用adapter为Spinner提供列表项,在main.java中可以使用setPrompt()方法设置提示信息,因为在XML文件中使用spinnerMode属性已经将spinner设置为dialog的形式了。
 
<!--code display03-->
 <Spinner
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:id="@+id/spinner_color"
        android:dropDownWidth="100sp"
        android:popupBackground="#0ff"
        android:spinnerMode="dialog"/>
/*
 * main.java
 */
package com.manu.spinner;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
public class MainActivity extends AppCompatActivity {
    private Spinner spinner;
    private String[] colors = {"red","green","blue","yellow","pink"};
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        //根据id获得Spinner组件
        spinner = (Spinner) findViewById(R.id.spinner_color);
        //创建适配器
        //public ArrayAdapter (Context context, int resource, int textViewResourceId, T[] objects)
        //参数(上下文,系统自带的TextView或自定义的用于显示子项的TextView,要显示的数据)
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,colors);
        spinner.setPrompt("请选择喜欢的颜色!");
        spinner.setAdapter(adapter);
    }
}
/*
* code display04
* 为spinner添加事件监听器
*/
    spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
        @Override
        public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
                Toast.makeText(MainActivity.this,spinner.getItemAtPosition(position).toString()+" is selected!",Toast.LENGTH_SHORT).show();
            }
        //Spinner默认显示第一项
        @Override
        public void onNothingSelected(AdapterView<?> parent) {
                Toast.makeText(MainActivity.this,"no selected!",Toast.LENGTH_SHORT).show();
            }
    });
- 显示效果:
 
初识Spinner,以后继续深入了解和学习~ 
Spinner的简单实用的更多相关文章
- jQuery的几种简单实用效果
		
许久未分享博客,或许已生疏. 闲来无事, 分享几个jQuery简单实用的效果案例 不喜勿喷... 1.页面常用的返回顶部 <!DOCTYPE html> <html lang=&qu ...
 - 经验分享:10个简单实用的 jQuery 代码片段
		
尽管各种 JavaScirpt 框架和库层出不穷,jQuery 仍然是 Web 前端开发中最常用的工具库.今天,向大家分享我觉得在网站开发中10个简单实用的 jQuery 代码片段. 您可能感兴趣的相 ...
 - 简单实用的PHP防注入类实例
		
这篇文章主要介绍了简单实用的PHP防注入类实例,以两个简单的防注入类为例介绍了PHP防注入的原理与技巧,对网站安全建设来说非常具有实用价值,需要的朋友可以参考下 本文实例讲述了简单实用的PHP防注 ...
 - php简单实用的操作文件工具类(创建、移动、复制、删除)
		
php简单实用好用的文件及文件夹复制函数和工具类(创建.移动.复制.删除) function recurse_copy($src,$dst) { // 原目录,复制到的目录 $dir = opend ...
 - 基于Bootstrap简单实用的tags标签插件
		
http://www.htmleaf.com/jQuery/ jQuery之家 自由分享jQuery.html5和css3的插件库 基于Bootstrap简单实用的tags标签插件
 - C#_简单实用的翻页
		
简单实用的生成翻页HTML辅助类 C# using System.Text; namespace ClassLibrary { /// <summary> /// /// </sum ...
 - 简单实用的Windows命令(一)
		
前几天新买了一台笔记本电脑,使用了一下几个简单的查看电脑配置的命令,觉得非常的不错,在此记录一下 一:运行命令的方式有两种 1:使用快捷键WIN+R,然后在弹出的“运行”对话框中输入对应的命令 2:在 ...
 - 简单实用的Windows命令(二)
		
昨天简单的记录了几个非常简单实用的Windows命令,不过我又想起来还有两个我在实际的工作中也是经常用到的命令——PING和IPCONFIG,不过我在工作中的使用都是非常简单的,用PING命令检测对应 ...
 - iOS边练边学--多线程介绍、NSThread的简单实用、线程安全以及线程之间的通信
		
一.iOS中的多线程 多线程的原理(之前多线程这块没好好学,之前对多线程的理解也是错误的,这里更正,好好学习这块) iOS中多线程的实现方案有以下几种 二.NSThread线程类的简单实用(直接上代码 ...
 
随机推荐
- 【布局】圣杯布局&双飞翼布局
			
背景 随着前端技术的发展推进,web端的布局方式已基本成熟,那么在网站布局方式中,三列布局最为常用,布局方式也有很多,渐渐的开发者们开始从效率的角度优化自己的代码"如果三排布局能将中间的模块 ...
 - 使用SpringMVC实现文件上传和下载
			
文件上传 第一步,加入jar包: commons-fileupload-1.3.1.jar commons-io-2.4.jar 第二步,在SpringMVC配置文件中配置CommonsMultipa ...
 - 【Spring Data 系列学习】Spring Data JPA 自定义查询,分页,排序,条件查询
			
Spring Boot Jpa 默认提供 CURD 的方法等方法,在日常中往往时无法满足我们业务的要求,本章节通过自定义简单查询案例进行讲解. 快速上手 项目中的pom.xml.application ...
 - 数据分析你需要知道的操作:ETL和ELT
			
如果您接触过数据仓库, 您可能会使用 ETL (Extract. Transform. Load) 或 ELT ( Extract.Load. Transform) 将您的数据从不同的来源提取到数据仓 ...
 - IDEA非maven项目怎么添加jar包
			
今天本人给大家讲解一下在使用Tomcat启动后,报找不到JAR包的问题,那么如何在IDEA中添加jar包,下面请看,如有不对的或者讲的不好的可以多多提出,我会进行相应的更改,先提前感谢提出意见的各位了 ...
 - Win10系统下安装tensorflow(cpu)+keras+jupyter notebook运行环境
			
记录,自用 1.安装Anaconda(这里安装的是python3.6版本) 2.创建tensorflow的conda环境 conda create -n tensorflow python=3.6 3 ...
 - docker 升级后启动异常处理
			
docker升级后启动时提示如下错误: Unable to create at Docker.Core.Pipe.NamedPipeClient.d__5.MoveNext() --- End of ...
 - XCTF---easyjni的WriteUp
			
一.题目来源 题目来源:XCTF的mobile区的easyjni题目. 题目下载地址:题目链接地址 二.解题过程 1.下载好题目后,安装到夜神模拟器中,发现有一个输入框和一个按 ...
 - 盘点Linux运维常用工具(二)-web篇之nginx
			
1.nginx的概述 .nginx是一个开源的.支持高性能.高并发的WWW服务和代理服务软件 .是由俄罗斯人Igor Sysoev开发的,具有高并发.占用系统资源少等特性 .官网:http://ngi ...
 - 03-influxdb原理
			
influxdb基本操作 1. influxdb与传统数据库区别 influxdb 传统数据库 database 数据库 measurement 表 points 表里的一行数据 2. 基本原理 2. ...