Android——基本控件之下拉列表:Spinner(九)

news2024/11/27 21:04:42

1.知识点

(1)掌握下拉列表Spinner的使用;

(2)可以通过程序配置Spinner显示内容;

(3)可以通过配置文件配置Spinner显示内容。

2.具体内容

在html中,下拉列表使用<select> 这个标签完成,如果想要在此标签中添加下拉列表的内容的话,是要经<option>这个标签完成,那么在android中使用Spinner这个组件完成下拉列表的功能。

 

对于Spinner 这个组件来说,核心的地方就是在于下拉列表内容的设置上,所有讲解的内容就是在对于下拉列表内容设置上。

 在Spinner类中,setAdapter(SpinnerAdapter)方法就是设置下拉列表的选择内容,SpinnerAdapter就是一个适配器,会将所有的数据进行封装,封装之后通过此方法就可以放入到Spinner中。

 方式一:直接配置资源文件:

    <TextView
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:text="请选择编码格式:" />
    <Spinner 
        android:id="@+id/selectcode"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />

 对于Spinner来说,通过配置资源文件设置其下拉列表选项的话,需要在values下面的资源文件中定义一个xml。

<?xml version="1.0" encoding="utf-8"?>
<resources>
	<string-array name="code_info">
	    <item>utf-8</item>
	    <item>gbk</item>
	    <item>gb2312</item>
	    <item>uft-16</item>
	    <item>iso88591</item>
	</string-array>
</resources>

现在我们已经配置了一个资源文件,此时的问题就是要将资源文件设置到下拉列表的选项上去。可以直接在布局文件中设置。

  <Spinner 
        android:id="@+id/selectcode"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/code_info"—将资源文件中的内容设置到选项上
        />

 现在效果已经出来了,当然我们也可以设置一些下拉列表的提示信息。

<Spinner 
        android:id="@+id/selectcode"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:entries="@array/code_info"
        android:prompt="@string/promt_info"—配置提示信息
        />

以上就是通过配置资源文件的形式设置下拉列表选项的。

方式二:通过android.widget.ArrayAdapter类完成列表项设置

       ArrayAdapter类的功能:

              ·直接通过读取资源文件的定义的内容

              ·通过List集合设置列表项

范例一:通过读取资源文件的方式定义列表项

 

<string-array name="color_info">
	    <item>红色</item>
	    <item>蓝色</item>
	    <item>绿色</item>
	    <item>白色</item>
	    <item>黑色</item>
	</string-array>
<Spinner 
        android:id="@+id/selectcolor"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:prompt="@string/color_info"
        />

 现在对于我们的这个下拉列表就没有任何的列表信息,现在我们通过Activity程序进行配置,我们要知道ArrayAdapter类似于一个集合,只需要制定泛型。

 

public class SpinnerActivity extends Activity {
	private Spinner colorSpinner = null;
	 ArrayAdapter<CharSequence> adapter = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.spinner_activity);
        this.colorSpinner = (Spinner) super.findViewById(R.id.selectcolor);//取得组件
        this.colorSpinner.setPromptId(R.string.color_info);//设置提示信息
        //现在关键问题就是要装配一个SpinnerAdapter
        this.adapter = ArrayAdapter.createFromResource(this, R.array.color_, android.R.layout.simple_spinner_item);
        this.adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//重新设置风格
        colorSpinner.setAdapter(this.adapter);//设置显示内容
    }
}

现在我们已经能够设置下拉列表的选项了,但是和第一种方式并没有太大的区别。

范例二:通过List集合完成配置。 

<Spinner 
        android:id="@+id/selectcity"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        />
package com.example.spinnerproject;

import java.util.ArrayList;
import java.util.List;

import android.app.Activity;
import android.os.Bundle;
import android.widget.ArrayAdapter;
import android.widget.Spinner;

public class SpinnerActivity extends Activity {
	private Spinner colorSpinner = null;
	private Spinner citySpinner = null;
	 ArrayAdapter<CharSequence> adapterColor = null;
	 ArrayAdapter<CharSequence> adapterCity = null;
	 List<CharSequence> list = null;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.spinner_activity);
        this.colorSpinner = (Spinner) super.findViewById(R.id.selectcolor);//取得组件
        this.colorSpinner.setPromptId(R.string.color_info);//设置提示信息
        //现在关键问题就是要装配一个SpinnerAdapter
        this.adapterColor = ArrayAdapter.createFromResource(this, R.array.color_, android.R.layout.simple_spinner_item);
        this.adapterColor.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//重新设置风格
        colorSpinner.setAdapter(this.adapterColor);//设置显示内容
        
        //以下是通过List集合完成下拉列表选项设置
        this.citySpinner = (Spinner) super.findViewById(R.id.selectcity);
        this.citySpinner.setPromptId(R.string.city_info);
        this.list = new ArrayList<CharSequence>();//实例化集合
        this.list.add("兰州");
        this.list.add("北京");
        this.list.add("上海");
        this.list.add("深圳");
        this.list.add("广州");
        this.adapterCity = new ArrayAdapter<CharSequence>(this,android.R.layout.simple_spinner_item,this.list);//装配适配器
        this.adapterCity.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);//重新设置风格
        this.citySpinner.setAdapter( this.adapterCity );//设置下拉选项
    }
}

 从以上的操作来看,下拉列表这个组件比我们之前学习的组件要稍微困难一些,大部分情况下,都是使用配置资源文件的形式设置下拉列表选项的。只有在特殊情况下才会使用到Activity程序进行配置。

3.小结

(1)使用Spinner可以完成下拉列表框的显示功能;

(2)下拉列表框的显示内容可以通过配置文件或程序进行填充。

 

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/646902.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

直击网络安全简史,现阶段提升免疫力是关键 | 产业安全观智库访谈

当下&#xff0c;AIGC、区块链、云计算等新兴技术发展如火如荼&#xff0c;网络安全的内涵与外延也随之出现许多变化&#xff0c;安全攻防也从早期的黑客炫技手段&#xff0c;演变为如今产业发展的底座。过去的20多年&#xff0c;网络安全行业出现了哪些新变化&#xff1f;安全…

springboot项目外卖管理 day06-用户端进行展示与下单操作

文章目录 一、用户地址簿1.1、需求分析1.2、功能展示 二、菜品展示2.1、需求分析 2.2、代码开发2.2.1、代码开发-梳理交互过程 2.3、功能测试 3、购物车功能3.1、需求分析3.2、数据模型3.3、代码开发3.3.1、代码开发-梳理交互过程3.3.2、代码开发-准备工作 4、下单4.1、需求分析…

C++算法:加权连通图的最小生成树(Kruskal)

文章目录 前言一、什么是最小生成树二、代码实现1、构建图2、生成树 总结原创文章&#xff0c;未经许可&#xff0c;严禁转载 前言 最小生成树算法就是在众多可行的方案中选择代价最小的方法。生活中我们经常会遇到类似可以抽象成最小生成树的例子&#xff1a;比如你要给家中布…

MYSQL数据库管理1

目录 数据库的基本概念 数据&#xff08;Data&#xff09; 表 数据库 数据库管理系统&#xff08;DBMS&#xff09; 数据库系统 数据库系统发展史 第一代数据库 第二代数据库 第三代数据库 当今主流数据库介绍 SQL Server&#xff08;微软公司产品&#xff09; Or…

3年经验来面试20K的测试岗,连基本功都不会,还不如去招应届生

这段时间公司项目急缺人手&#xff0c;面了不少人&#xff0c;竟然没有一个满意的。一开始瞄准的就是中高级的水准&#xff0c;也没指望来技术大牛&#xff0c;提供的薪资在15-25K&#xff0c;面试的人很多&#xff0c;但结果让人失望。 从简历上来说都是3-4年工作经验&#x…

python---列表和元组(2)

切片操作的基本使用 使用切片的时候省略边界 切片操作是一个比较高校的操作,进行切片的时候,只是取出了原有列表的一个部分,并不涉及到数据的拷贝,假设有一个很大的列表,进行切片,切片的范围也很大,即使如此,切片操作仍然非常高校. 切片操作还可以指定"步长",类比…

Leangoo领歌敏捷项目管理场景示例

Leangoo领歌​​​​​​​是一款专业的敏捷开发管理工具&#xff0c;提供端到端敏捷研发管理解决方案&#xff0c;涵盖敏捷需求管理、任务协同、进展跟踪、统计度量等。 Leangoo领歌上手快、实施成本低&#xff0c;可帮助企业快速落地敏捷&#xff0c;提质增效、缩短周期、加速…

通过零代码ETLCloud实现金蝶云星空数据自动化同步

金蝶云星空系统介绍 金蝶云星空是一款基于云计算架构打造的全面财务管理软件&#xff0c;旨在为企业提供全方位、一站式的财务解决方案。其功能包括财务核算、现金管理、应付应收管理、成本核算、固定资产管理、税务管理等&#xff0c;覆盖了财务管理的各个方面&#xff0c;可…

【黄啊码】批量获取邮箱软件的下载和使用(外贸人必用的工具箱)

大家好&#xff0c;我是黄啊码&#xff0c;前两天有个朋友想通过邮箱实现获取邮箱地址&#xff0c;问我有没有类似的软件和教程&#xff0c;今天&#xff0c;他来了。。 该外贸软件可以按关键字收集电子邮件 使用内置的网站爬虫从网站中提取电子邮件和电话 与许多基于网络的工…

【DRAM存储器一】基本存储单元、阵列结构、读写原理

&#x1f449;个人主页&#xff1a;highman110 &#x1f449;作者简介&#xff1a;一名硬件工程师&#xff0c;持续学习&#xff0c;不断记录&#xff0c;保持思考&#xff0c;输出干货内容 参考书籍&#xff1a;《Memory Systems - Cache, DRAM, Disk》 目录 最小存储单…

深度学习笔记之Transformer(二)关于注意力分数的总结

深度学习笔记之Transformer——关于注意力分数的总结 引言回顾&#xff1a; Nadaraya-Watson \text{Nadaraya-Watson} Nadaraya-Watson核回归再回首&#xff1a; Seq2seq \text{Seq2seq} Seq2seq中的注意力机制注意力机制的泛化表示加性注意力机制缩放点积注意力机制 引言 上一…

Pytest教程__配置文件-pytest.ini(4)

pytest配置文件可以改变pytest的默认运行方式&#xff0c;它是一个固定的文件名称pytest.ini。 存放路径为项目的根目录 解决中文报错 在讲解配置文件的可用参数前&#xff0c;我们先解决一个高概率会遇到的问题&#xff0c; 那就是在pytest.ini文件 中不能使用任何中文符号&…

【Webpack】Webpack

❤️ Author&#xff1a; 老九 ☕️ 个人博客&#xff1a;老九的CSDN博客 &#x1f64f; 个人名言&#xff1a;不可控之事 乐观面对 &#x1f60d; 系列专栏&#xff1a; 文章目录 WebpackWebpack是干嘛的代码分割摇树优化模块热替换 Webpack Webpack是干嘛的 Webpack是用来打…

<Python全景系列-2> Python数据类型大盘点

欢迎来到我们的系列博客《Python全景系列》&#xff01;在这个系列中&#xff0c;我们将带领你从Python的基础知识开始&#xff0c;一步步深入到高级话题&#xff0c;帮助你掌握这门强大而灵活的编程语法。无论你是编程新手&#xff0c;还是有一定基础的开发者&#xff0c;这个…

一种自适应异常数据点消除方法

1.问题 在现实生活中&#xff0c;采集到的信号&#xff0c;会有一些噪点需要去除&#xff0c;否则这部分数据在比如时域空间直接进行分析时就会遇到非常难以厘清的逻辑要处理&#xff0c;各种异常。 肉眼看去&#xff0c;那些噪点是清清楚楚的。如何去除呢&#xff1f; 这里给…

快速搭建自己的跑腿服务平台:开源跑腿系统源码分享

在现代社会&#xff0c;人们生活节奏加快&#xff0c;很多时候需要在短时间内完成各种任务&#xff0c;如购物、送货等。这就催生了跑腿服务的兴起。跑腿服务平台为用户提供一站式服务&#xff0c;让用户可以轻松地找到可靠的跑腿服务&#xff0c;并实现便捷快速的服务体验。 …

基于Java线上旅行信息管理系统设计实现(源码+lw+部署文档+讲解等)

博主介绍&#xff1a; ✌全网粉丝30W,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战 ✌ &#x1f345; 文末获取源码联系 &#x1f345; &#x1f447;&#x1f3fb; 精…

12. 100ASK-V853-PRO开发板 MIPI屏测试指南

100ASK-V853-PRO开发板 MIPI屏测试指南 硬件要求&#xff1a; 100ASK-V853-PRO开发板四寸MIPI屏 软件要求&#xff1a; 固件下载地址&#xff1a;链接&#xff1a;百度网盘 提取码&#xff1a;sp6a 固件位于资料光盘中的10_测试镜像/2.测试4寸MIPI屏/v853_linux_100ask_uar…

分布式文件存储相关概念

分布式文件存储 1 常见专业术语 1.1 备份技术 出于数据恢复的目的而创建的一份额外的数据副本 分类&#xff1a;直接连接备份&#xff0c;网络连接备份&#xff0c; 脱局域网备份&#xff0c;脱服务器备份 在线备份&#xff0c;离线备份&#xff0c;近线备份 ①冷备份 冷备份…

ORC与Parquet压缩分析

ORC与Parquet压缩分析 date&#xff1a;2023年6月14日 文章目录 ORC与Parquet压缩分析压测环境数据schema 数据实验压缩结果文件使用建议附录编译hadoop-lzo编译前提编译程中出现的错误结果文件 file-compress.jar源码ReadWriterOrc类NativeParquet类FileUtil类 压测环境 OS&a…