通常情况下,如果列表选择框中要显示的列表项是可知的,那么可以将其保存在数组资源文件中,然后通过数组资源来为列表选择框指定列表项。这样就可以在不编写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)相关推荐

  1. com.android.kyj.onj,Android 自学之列表选择框Spinner

    列表选择框(Spinner)与Swing编程里面的Spinner不同,这里的Spinner其实就是一个列表选项框. Spinner是ViewGroup的间接子类,因此他也可作为容器使用. Spinne ...

  2. Android如何愉快的使用Spinner列表选择框

    Android如何愉快的使用Spinner列表选择框 说实话 我刚学习的时候,感觉这就是网页上的select标签,不过,这个标签可以带图,哈哈 是不是感觉像 又到了我们粘贴代码的时间了 布局文件:ac ...

  3. Android仿IOS封装通用的弹出框Dialog和底部弹出列表选择框 仿美团顶部条件筛选框 附自定义ViewGroup

    弹出框 背景 提示与询问弹出框 实现 使用 列表选择框 实现 使用 顶部条件筛选框 实现 自定义ViewGroup 使用 总结 背景 鉴于Android提供的默认弹出框很一般,IOS的弹出框样式还不错 ...

  4. 列表ListView和列表选择框的使用编写步骤

    (一)Spinner列表选择框的使用: 1.在Graphical Layout中拉出一个满意的界面. 2.给会用到的控件设置一个好记忆的和区分的id号,例如:布局名_控件名_对象名. 3.在布局文件中 ...

  5. android 日期弹出框,Android 日期选择框 简洁常用

    /*** @description 选择日期弹出框 *@paramlistener 选择日期确定后执行的接口 *curDate 当前显示的日期 *@return*@authorwqy * @time ...

  6. android下拉框 Spinner 获取选中,设置选中

    设置默认选中: public static int ugid = 1; public void setSpinnerItemSelectedByValue(Spinner spinner,String ...

  7. 自己动手实现文件文件夹树列表选择框(xingyun86源码)

    今日无聊,在网上看到一份不错的文件文件夹树列表控件,于是下载编译了一下. 修复了部分点击崩溃的bug及部分逻辑的优化. 下载地址: http://www.ppsbbs.tech/thread-277. ...

  8. spinner列表选项框

    spinner就是一个列表选项框,不过Android的列表选择框不需要显示下拉列表,而是相当于弹出一个菜单功用户选择 Spinner和Gallery都继承了AbsSpinner,AdsSpinner继 ...

  9. android studio 下拉菜单,怎么在android studio中使用Spinner实现一个下拉菜单

    怎么在android studio中使用Spinner实现一个下拉菜单 发布时间:2021-03-23 14:56:15 来源:亿速云 阅读:92 作者:Leah 这期内容当中小编将会给大家带来有关怎 ...

  10. Android基础入门教程——2.4.10 Spinner(列表选项框)的基本使用

    Android基础入门教程--2.4.10 Spinner(列表选项框)的基本使用 标签(空格分隔): Android基础入门教程 本节引言: 本来本节是想给大家介绍一个Gallery(画廊)的一个控 ...

最新文章

  1. JDK1.8快速入门
  2. c# 连续抓取页面内容
  3. go语言中的闭包结构
  4. 保姆级教程 | TensorFlow-YOLOv3 从本地训练到服务器部署全过程
  5. [转]【人是怎么废掉的?】
  6. iPhone SDK开发基础之自定义仪表控件
  7. 魔方机器人之下位机编程---模拟PWM
  8. ognl.OgnlException: target is null for setProperty(null, offset, [Ljava.lang.String;@1667f3c) 解决方法
  9. Dos窗口的常见打开方式和常见命令
  10. ML-Agents案例之金字塔
  11. 算法题_寻找最大连通区域
  12. 无线基础知识学习(一)
  13. html删除子元素无效,如何使用JavaScript删除DOM节点的所有子元素?
  14. 【前端】Vue+Element UI案例:通用后台管理系统-用户管理:Table表格增删查改、Pagination分页、搜索框
  15. 逻辑右移、算术右移与循环逻辑右移
  16. Oracle 数据压缩(Compression) 技术 说明
  17. VAO 与 VBO 的前世今生
  18. Linux关闭防火墙、设置开放端口
  19. 解决CentOS7 Development Tools 包不存在问题
  20. 2022-03-06:金币路径。 给定一个数组 A(下标从 1 开始)包含 N 个整数:A1,A2,……,AN 和一个整数 B。 你可以从数组 A 中的任何一个位置(下标为 i)跳到下标 i+1,i+

热门文章

  1. java List操作
  2. python语法学习第三天--列表
  3. linux内存管理实验,Linux内存管理机制研究
  4. javascript 本地存储(cookies、sessionStorage和localStorage解释及区别)
  5. Servlet期末复习二
  6. 阶段1 语言基础+高级_1-3-Java语言高级_06-File类与IO流_04 IO字节流_5_文件存储的原理和记事本打开文本显示原理...
  7. 在容器服务kubernetes上配置https
  8. 关于Encode in UTF-8 without BOM
  9. 搜索框键盘抬起事件2
  10. iOS开发之App上架流程(2017)