Android之Spinner用法详解
作者:淼森007 发布时间:2022-10-05 00:57:17
标签:Android,Spinner
一、Spinner的两种展示样式
下拉列表的展示方式有两种,一种是在当前下拉框的正下方展示列表,此时把spinnerMode属性设置为dropdown;另一种是在页面中部以对话框形式展示列表,此时把SpinnerMode属性设置为dialog。
二、Spinner相关方法
setPrompt:设置标题文字。
setAdapter:设置下拉列表的适配器。
setSelection:设置当前选中哪项。注意该方法要在setAdapter方法之后调用。
setOnItemSelectedListener:设置下拉列表的选择 * ,该 * 要实现接口OnItemSelectedListener。
三、Spinner用法举例
XML布局文件activity_main.xml
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="match_parent"
android:orientation="vertical">
<Spinner
android:layout_width="200dp"
android:id="@+id/spinner"
android:layout_height="wrap_content"
android:layout_gravity="center_horizontal"
android:spinnerMode="dropdown"
android:dropDownVerticalOffset="45dp"
android:background="@null"/>
</LinearLayout>
选中文字样式item_select.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="45dp"
android:background="@android:color/holo_blue_dark"
android:textSize="14sp"
android:textColor="@android:color/holo_red_light"
android:gravity="center"/>
列表其他文字样式item_dropdown.xml
<?xml version="1.0" encoding="utf-8"?>
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="45dp"
android:textColor="@android:color/black"
android:textSize="14sp"
android:gravity="center"/>
Java代码MainActivity.java
public class MainActivity extends AppCompatActivity{
private String[] starArray = {"水星","金星","地球","火星","木星","土星"};
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
initSpinner();
}
private void initSpinner(){
//声明一个下拉列表的数组适配器
ArrayAdapter<String> starAdapter = new ArrayAdapter<String>(this,R.layout.item_select,starArray);
//设置数组适配器的布局样式
starAdapter.setDropDownViewResource(R.layout.item_dropdown);
//从布局文件中获取名叫sp_dialog的下拉框
Spinner sp = findViewById(R.id.spinner);
//设置下拉框的标题,不设置就没有难看的标题了
sp.setPrompt("请选择行星");
//设置下拉框的数组适配器
sp.setAdapter(starAdapter);
//设置下拉框默认的显示第一项
sp.setSelection(0);
//给下拉框设置选择 * ,一旦用户选中某一项,就触发 * 的onItemSelected方法
sp.setOnItemSelectedListener(new MySelectedListener());
}
class MySelectedListener implements AdapterView.OnItemSelectedListener{
@Override
public void onItemSelected(AdapterView<?> adapterView, View view, int i, long l) {
Toast.makeText(MainActivity.this,"您选择的是:"+starArray[i],Toast.LENGTH_SHORT).show();
}
@Override
public void onNothingSelected(AdapterView<?> adapterView) {
}
}
}
四、dropdown模式下的列表分割线
只需要在style中添加如下代码即可
添加样式
<style name="XSpinnerStyle" parent="android:Widget.ListView.DropDown">
<!-- 分隔线颜色 -->
<item name="android:divider">#000000</item>
<item name="android:dividerHeight">1dp</item>
</style>
然后在AppTheme中调用
<item name="android:dropDownListViewStyle">@style/XSpinnerStyle</item>
但注意,该分割线只有是dropdown样式时才会显示
来源:https://blog.csdn.net/weixin_38322371/article/details/111472647


猜你喜欢
- 一.前言RabbitMQ的TTL全称为Time-To-Live,表示的是消息的有效期。消息如果在队列中一直没有被消费并且存在时间超过了TTL
- 这篇文章主要介绍了Mybatis Plugin * 开发过程详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值
- 前言其实一般的程序猿根本不用了解这么深,只有当你到了一定层次,需要了解jvm内部运行机制,或者高并发多线程下,你写的代码对内存有影响,你想做
- HTTP请求,在日常开发中,还是比较常见的,今天给大家分享HttpUtils如何使用。阅读本文,你将收获:简单总结HTTP请求常用配置;Ja
- ajax简介 Ajax 即“Asynchronous Javascript An
- 定时任务1import lombok.extern.slf4j.Slf4j;/** * @author Created by niugang
- 关于Android实现文字上下滚动这个功能,我目前有两种方法实现: 一个是在TextView 中加上翻转的动画效果,然后设置循环滚动;一种是
- 目录一、所使用的环境配置:二、项目简介三、知识点总结(代码和配置)SpringBoot:1.Mybatis-Plus配置文件,实现分页查询:
- 要说在 Spring Boot 中注册过滤器有三种方式,你都能想到哪些呢?今天松哥就来和大家聊一聊 Spring Boot 中注册过滤器的三
- 1.Android 加载https请求的网页的时候 打不开当load有ssl层的https页面时,如果这个网站的安全证书在Android无法
- 本文实例讲述了在WPF中动态加载XAML中的控件的方法。分享给大家供大家参考,具体如下:using System;using System.
- 1.一段java程序是如何运行起来的呢?Java源文件,通过编译器,产生.Class字节码文件,字节码文件通过Java虚拟机中的解释器,编译
- 本文实例讲述了Android实现SQLite添加、更新及删除行的方法。分享给大家供大家参考,具体如下:SQLiteDatabase类暴露了特
- java引用传递的三种类型我这里使用了mldn视频里的例子,只用于学习交流。第一种结果:调用前:50调用后:1000分析:理解:好理解第二种
- 前言传统的Spring做法是使用.xml文件来对bean进行注入或者是配置aop、事物,这么做有两个缺点:1、如果所有的内容都配置在.xml
- 1.背景在java语言中还没有引入枚举类型之前,表示枚举类型的常用模式是声明一组具有int常量。之前我们通常利用public final s
- public void add(intindex, Eelement)从index索引的位置添加element元素,后面的元素都往
- #include<iostream>#include<assert.h>#include<stack>#
- 对某个类型中的方法进行拦截,然后加入固定的业务逻辑,这是AOP面向切面编程可以做的事,在springboot里实现aop的方法也有很多, s
- Activity回顾activity是android程序中最重要的组件之一,它是用户与android用户交互的主要组件,类似于桌面程序的图形