Android——列表选择框(Spinner)
通常情况下,如果列表选择框中要显示的列表项是可知的,那么可以将其保存在数组资源文件中,然后通过数组资源来为列表选择框指定列表项。这样就可以在不编写Java代码的情况下实现一个下拉选择框。
1.在布局文件中添加一个<spinner>标记,并为其指定android:entries属性,具体代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"xmlns:tools="http://schemas.android.com/tools"android:id="@+id/LinearLayout1"android:layout_width="match_parent"android:layout_height="match_parent"android:orientation="vertical"tools:context=".MainActivity" ><Spinner android:entries="@array/ctype"android:layout_width="wrap_content"android:layout_height="wrap_content"android:id="@+id/spinner"/>
</LinearLayout>
其中android:entries属性是用来指定列表项的,如果在布局文件中不指定该属性,可以在Java代码中通过为其指定适配器的方式指定;
2.编写用于指定列表项的数组资源文件,并将其保存在res\values目录中,这里将其命名为arrays.xml,在该文件中添加一个字符串数组,名称为ctype,具体代码如下
<?xml version="1.0" encoding="UTF-8"?>
<resources><string-array name="ctype"><item>ID</item><item>Student Card</item><item>Army Card</item><item>Work Card</item><item>Other</item></string-array>
</resources>
在屏幕上添加列表选择框后,可以使用列表选择框的getSelectedItem()方法获取列表选择框的选中值,可以使用下面的代码:
Spinner spinner=(Spinner)findViewById(R.id.spinner); spinner.getSelectedItem();
如果想要在用户选择不同的列表项后,执行相应的处理,则可以为该列表选择框添加OnItemSelectedListener事件监听器。例如,为spinner添加选择列表事件监听器,并在onItemSelected()方法中获取选择项的值输出到日志中,可以使用如下代码:
package com.basillee.blogdemo;import android.os.Bundle;
import android.app.Activity;
import android.util.Log;
import android.view.View;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemSelectedListener;
import android.widget.Spinner;public class MainActivity extends Activity {@Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);Spinner spinner=(Spinner)findViewById(R.id.spinner);spinner.setOnItemSelectedListener(new OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> parent, View arg1,int pos, long id) {// TODO Auto-generated method stubString result=parent.getItemAtPosition(pos).toString();//获取选择项的值Log.i("spinner", result);}@Overridepublic void onNothingSelected(AdapterView<?> arg0) {// TODO Auto-generated method stub}});}}
下面介绍通过指定适配器的方式指定列表的方式指定列表项的方法。
(1)创建一个适配器对象,通常使用ArrayAdapter类。在Android中,创建适配器通常可以使用以下两种方法:一种是通过数组资源文件创建;另一种是通过java里面的字符串数组创建。
- 通过数组资源文件创建适配器,需要使用ArrayAdapter类的createFromResource()方法,具体代码如下:
ArrayAdapter<CharSequence> adapter=ArrayAdapter.createFromResource(this,R.array.ctype,android.R.layout.simple_dropdown_item_1line);
- 通过Java代码创建如下
String[]ctype=new String[]{"ID","Student Card","Army Card"};ArrayAdapter<String> adapter=new ArrayAdapter<String>(this, android.R.layout.simple_dropdown_item_1line,ctype);
(2)为适配器设置下拉列表的选项样式:
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
(3)将适配器与选择列表框关联:
spinner.setAdapter(adapter);
转载于:https://www.cnblogs.com/BasilLee/p/4101469.html
Android——列表选择框(Spinner)相关推荐
- com.android.kyj.onj,Android 自学之列表选择框Spinner
列表选择框(Spinner)与Swing编程里面的Spinner不同,这里的Spinner其实就是一个列表选项框. Spinner是ViewGroup的间接子类,因此他也可作为容器使用. Spinne ...
- Android如何愉快的使用Spinner列表选择框
Android如何愉快的使用Spinner列表选择框 说实话 我刚学习的时候,感觉这就是网页上的select标签,不过,这个标签可以带图,哈哈 是不是感觉像 又到了我们粘贴代码的时间了 布局文件:ac ...
- Android仿IOS封装通用的弹出框Dialog和底部弹出列表选择框 仿美团顶部条件筛选框 附自定义ViewGroup
弹出框 背景 提示与询问弹出框 实现 使用 列表选择框 实现 使用 顶部条件筛选框 实现 自定义ViewGroup 使用 总结 背景 鉴于Android提供的默认弹出框很一般,IOS的弹出框样式还不错 ...
- 列表ListView和列表选择框的使用编写步骤
(一)Spinner列表选择框的使用: 1.在Graphical Layout中拉出一个满意的界面. 2.给会用到的控件设置一个好记忆的和区分的id号,例如:布局名_控件名_对象名. 3.在布局文件中 ...
- android 日期弹出框,Android 日期选择框 简洁常用
/*** @description 选择日期弹出框 *@paramlistener 选择日期确定后执行的接口 *curDate 当前显示的日期 *@return*@authorwqy * @time ...
- android下拉框 Spinner 获取选中,设置选中
设置默认选中: public static int ugid = 1; public void setSpinnerItemSelectedByValue(Spinner spinner,String ...
- 自己动手实现文件文件夹树列表选择框(xingyun86源码)
今日无聊,在网上看到一份不错的文件文件夹树列表控件,于是下载编译了一下. 修复了部分点击崩溃的bug及部分逻辑的优化. 下载地址: http://www.ppsbbs.tech/thread-277. ...
- spinner列表选项框
spinner就是一个列表选项框,不过Android的列表选择框不需要显示下拉列表,而是相当于弹出一个菜单功用户选择 Spinner和Gallery都继承了AbsSpinner,AdsSpinner继 ...
- android studio 下拉菜单,怎么在android studio中使用Spinner实现一个下拉菜单
怎么在android studio中使用Spinner实现一个下拉菜单 发布时间:2021-03-23 14:56:15 来源:亿速云 阅读:92 作者:Leah 这期内容当中小编将会给大家带来有关怎 ...
- Android基础入门教程——2.4.10 Spinner(列表选项框)的基本使用
Android基础入门教程--2.4.10 Spinner(列表选项框)的基本使用 标签(空格分隔): Android基础入门教程 本节引言: 本来本节是想给大家介绍一个Gallery(画廊)的一个控 ...
最新文章
- JDK1.8快速入门
- c# 连续抓取页面内容
- go语言中的闭包结构
- 保姆级教程 | TensorFlow-YOLOv3 从本地训练到服务器部署全过程
- [转]【人是怎么废掉的?】
- iPhone SDK开发基础之自定义仪表控件
- 魔方机器人之下位机编程---模拟PWM
- ognl.OgnlException: target is null for setProperty(null, offset, [Ljava.lang.String;@1667f3c) 解决方法
- Dos窗口的常见打开方式和常见命令
- ML-Agents案例之金字塔
- 算法题_寻找最大连通区域
- 无线基础知识学习(一)
- html删除子元素无效,如何使用JavaScript删除DOM节点的所有子元素?
- 【前端】Vue+Element UI案例:通用后台管理系统-用户管理:Table表格增删查改、Pagination分页、搜索框
- 逻辑右移、算术右移与循环逻辑右移
- Oracle 数据压缩(Compression) 技术 说明
- VAO 与 VBO 的前世今生
- Linux关闭防火墙、设置开放端口
- 解决CentOS7 Development Tools 包不存在问题
- 2022-03-06:金币路径。 给定一个数组 A(下标从 1 开始)包含 N 个整数:A1,A2,……,AN 和一个整数 B。 你可以从数组 A 中的任何一个位置(下标为 i)跳到下标 i+1,i+
热门文章
- java List操作
- python语法学习第三天--列表
- linux内存管理实验,Linux内存管理机制研究
- javascript 本地存储(cookies、sessionStorage和localStorage解释及区别)
- Servlet期末复习二
- 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_5_文件存储的原理和记事本打开文本显示原理...
- 在容器服务kubernetes上配置https
- 关于Encode in UTF-8 without BOM
- 搜索框键盘抬起事件2
- iOS开发之App上架流程(2017)