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线程类的简单实用(直接上代码 ...
随机推荐
- JZOJ 5329. 【NOIP2017提高A组模拟8.22】时间机器
5329. [NOIP2017提高A组模拟8.22]时间机器 (File IO): input:machine.in output:machine.out Time Limits: 2000 ms M ...
- 数据加密标准(DES)详解
1 简介 1.1 历史 DES(Data Encryption Standard)是由IBM公司在1974年提出的加密算法,在1977年被NIST定位数据加密标准.随后的很多年里,DES都是最流行的对 ...
- 关于org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.atguigu.crud.dao.DepartmentMapper.insertSelective的错误
今天我在使用mybatis逆向工程的时候,由于一个疏忽字打错了..结果花了一早上才把错误找全..广大小伙伴们一定要小心啊(能复制粘贴就别手打) 关于org.apache.ibatis.binding. ...
- 日常破解--XCTF easy_apk
一.题目来源 来源:XCTF社区安卓题目easy_apk 二.破解思路 1.首先运行一下给的apk,发现就一个输入框和一个按钮,随便点击一下,发现弹出Toast验证失败.如下图所示: ...
- openwrt MT7620A MT7610E 5G 驱动添加移值
使用 github 上别人提供好的源码.整合到最新的 openwrt 18 中,目前 kernel 的版本为 4.1 . 编辑中....
- 19.10.11学习日记随笔 mysql事务隔离性
一天的感悟 学习事务的处理方式,其中反想自己学过的flask 默认是开启事务的,flask_sqlalchemy每次在提交时都是需要commit,或者失败是需要rollback回滚操作的,其实pyth ...
- nohub 将程序永久运行下去
今天看了一遍文章,一直以为将程序制成sh脚本,通过crontab来间隔执行以为是真的不断执行,后来才发现是错误的,每隔一段时间都会执行一次,都会占用一个进程,难怪一看进程几十来个同样名字的进程在运行 ...
- Android 版的多合一Office应用也正式向iOS开放了
导读 在 Android 版的多合一 Office 应用「偷跑」不久后(官方证实上线时间比计划要早),为 iOS 准备的版本现在终于也结束 beta 测试正式上线了. 和只提供「有限」平板支持的 An ...
- 练习div出现的小问题
一.出现图片不显示状况1.class中设定的名字不对2.在高单位后面出现了 “:“ 所以也不显示3.上一个div盒子没有写结束标签 4.在添加背景图,把height的值改成auto后不显示,填上具体数 ...
- react build本地相对目录 "homepage": ".", package.json
react build相对目录 "homepage": ".", package.json