Android之Spinner用法详解
目录
- 一、Spinner的两种展示样式
- 二、Spinner相关方法
- 三、Spinner用法举例
- XML布局文件activity_main.xml
- 选中文字样式item_select.xml
- 列表其他文字样式item_dropdown.xml
- Java代码MainActivity.java
- 四、dropdown模式下的列表分割线
一、Spinner的两种展示样式 下拉列表的展示方式有两种,一种是在当前下拉框的正下方展示列表,此时把spinnerMode属性设置为dropdown; 另一种是在页面中部以对话框形式展示列表,此时把SpinnerMode属性设置为dialog。
【Android之Spinner用法详解】
二、Spinner相关方法
- setPrompt:设置标题文字。
- setAdapter:设置下拉列表的适配器。
- setSelection:设置当前选中哪项。注意该方法要在setAdapter方法之后调用。
- setOnItemSelectedListener:设置下拉列表的选择监听器,该监听器要实现接口OnItemSelectedListener。
三、Spinner用法举例
XML布局文件activity_main.xml
选中文字样式item_select.xml
列表其他文字样式item_dropdown.xml
Java代码MainActivity.java
public class MainActivity extends AppCompatActivity{ private String[] starArray = {"水星","金星","地球","火星","木星","土星"}; @Overrideprotected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); initSpinner(); } private void initSpinner(){//声明一个下拉列表的数组适配器ArrayAdapter starAdapter = new ArrayAdapter(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{ @Overridepublic void onItemSelected(AdapterView> adapterView, View view, int i, long l) {Toast.makeText(MainActivity.this,"您选择的是:"+starArray[i],Toast.LENGTH_SHORT).show(); } @Overridepublic void onNothingSelected(AdapterView> adapterView) { }}}
四、dropdown模式下的列表分割线 只需要在style中添加如下代码即可
添加样式
- #000000
- 1dp
然后在AppTheme中调用
- @style/XSpinnerStyle
但注意,该分割线只有是dropdown样式时才会显示
到此这篇关于Android之Spinner用法详解的文章就介绍到这了,更多相关Android之Spinner用法内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
推荐阅读
- 基于Android|基于Android Flutter编写贪吃蛇游戏
- Nginx之location详解
- Android开发|移动端系统生物认证技术详解
- 机器学习|datawhale学习之一西瓜书和南瓜书概论
- 算法|Leetcode刷题笔记之: 链表(单链表经典题目)
- java线程创建和使用_Java 多线程 之 线程的创建和使用
- Quant|量化分析师的Python日记【Q Quant兵器谱之函数插值】
- NetCore微服务实现事务一致性masstransit之saga使用
- ES6之生成器
- ES6之迭代器(iterator)