Hello,Views(六)下拉框Spinner(附源码)
前言
本文根据官方教程适当翻译而来。(源码下载)
1.新建工程HelloSpinner
2.在main.xml里面添加一个spinner,设置Android:promt属性,这是一个提示属性,同时为默认的textview修改Android:text属性,它们将引用同一个string文本,如何理解呢,看了下面的图应该有所意会了。实现的效果是下图中红圈内的文字提示:
局部的main.xml如下:
<TextView android:layout_width="match_parent" android:layout_height="wrap_content" android:text="@string/planet_prompt" /> <Spinner android:id="@+id/spinner1" android:layout_width="match_parent" android:layout_height="wrap_content" android:prompt="@string/planet_prompt"/>
3.在onCreate()里面添加操作spinner的代码:
@Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Spinner spinner = (Spinner) findViewById(R.id.spinner1); ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.planets_array, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new MyOnItemSelectedListener()); }
4.
解释一下上面的两句ArrayAdapter.createFromResource(this,R.array.planets_array, android.R.layout.simple_spinner_item);和adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);关于前者它的函数原型如下
public static ArrayAdapter<CharSequence> createFromResource(Context context, int textArrayResId, int textViewResId)
参数:
context 应用的上下文
textArrayResId 数据源数组标识
textViewResId 用于显示的布局view
返回值:ArrayAdapter<CharSequence>
结合本例, R.array.planets_array 标识了我们要用到的字符串数组.R.layout.simple_spinner_item 标识了系统定义的一个标准的Spinner的布局外观。
而后者adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);定义的是spinner的每一个item的布局外观。
5.为了响应用户选择下拉框中某一项的事件,还要添加一个OnItemSelectedListener监听,具体实现是,新建一个MyOnItemSelectedListener 类继承OnItemSelectedListener类,在其中重写两个方法onItemSelected(),onNothingSelected(),它们分别处理item被选中和没选的事件:
public class MyOnItemSelectedListener implements OnItemSelectedListener { public void onItemSelected(AdapterView<?> parent, View view, int pos, long id) { Toast.makeText(parent.getContext(), "The planet is " + parent.getItemAtPosition(pos).toString(), Toast.LENGTH_LONG) .show(); } public void onNothingSelected(AdapterView parent) { // Do nothing. } }
5.OK,运行。(源码下载)
转载于:https://www.cnblogs.com/avenwu/archive/2012/02/21/2359525.html
Hello,Views(六)下拉框Spinner(附源码)相关推荐
- [安卓开发] 下拉框Spinner与适配器ArrayAdapter/SimpleAdapter的使用
目录 简单介绍Spinner和Adapter ArrayAdapter实现以对话框形式展示下拉框(纯文字) Simple实现以对话框形式展示下拉框(图片加文字) 简单介绍Spinner和Adapter ...
- 下拉框Spinner
xml: <!-- 下拉框 --> <Spinner android:layout_width="match_parent" android:layout_he ...
- php 类似微信下拉菜单,微信小程序实现下拉框(附代码)
微信小程序里没有和HTML里的下拉框一样的组件,想要相同的效果只能自己写一个,先看效果 下面来看一下代码: 首先WXML {{selectData[index]}} {{item}} 然后WXSS(如 ...
- addoption php,无忧建站-ajax+php无刷新二级联动下拉菜单(省市联动)源码
/** * ajax无刷新二级联动下拉菜单(省市联动) * * @author arcow * @version 1.0 * @lastupdate 2005-12-29 * */ ...
- Android SwipeRefreshLayout下拉刷新控件源码简单分析
咱们在做Android APP开发的时候经常碰到有下拉刷新和上拉加载跟多的需求,这篇文章咱们先说说下来刷新,咱们就以google的原生的下拉刷新控件SwipeRefreshLayout来看看大概的实现 ...
- HTML百度搜索框实现(附源码带注释)
1.百度类效果 源码: <!DOCTYPE html> <html lang="en"> <head><meta charset=&quo ...
- Android 之 下拉框(Spinner)的使用
下拉列表 Spinner. Spinner的使用,可以极大提高用户的体验性.当需要用户选择的时候,可以提供一个下拉列表将所有可选的项列出来.供用户选择. Demo如下,可以留作参考 一.使用数组作为 ...
- android下拉框 Spinner 获取选中,设置选中
设置默认选中: public static int ugid = 1; public void setSpinnerItemSelectedByValue(Spinner spinner,String ...
- MFC Windows 程序设计[五十六]之开启子对话框(附源码)
MFC Windows 程序设计[五十六]之开启子对话框 程序之美 前言 主体 运行效果 核心代码 逻辑分析 结束语 程序之美 前言 MFC是微软公司提供的一个类库(class libraries), ...
最新文章
- Outlook新邮件要双击打开后才显示为已读
- MySQL主从介绍、准备工作、配置主、配置从、测试主从同步、断电后恢复主从...
- C#中的方法(上):
- 共享内存 传一个类指针_C++指针
- Python 网络爬虫笔记1 -- Requests库
- vue 时间插件_Vue3 插件开发详解尝鲜版「值得收藏」
- C语言结构体指针的使用方法
- Rust从入门到放弃(1)—— hello,world
- oracle复合字段,复合索引 选择频繁的字段,还是选择选择性低的字段 放在前面?...
- apache 配置php 版本错误u,PHP+Apache+MySQL 在配置环境时遇到的问题
- 第一代90后IT毕业生调查:不想做IT民工,想做马云
- 关于CSS一些细节问题
- eclipse新建java项目_用eclipse创建Java项目(以一个初学者的角度全面教学)
- 【VRP】基于matlab遗传算法求解出租车网约车接送客车辆路径规划问题【含Matlab源码 YC003期】
- 【数学建模之Python】13.手撕抛物型方程的差分解法(如一维热传导方程)
- excel 将科学计数法的格式换成文本
- [Python3学习笔记-入门到入魔系列] 5分钟彻底搞懂XML文档解析
- Android学习笔记---集成百度语音合成的坑与坑
- LeTeX的下载与安装
- UE5 Gameplay 框架拆解