Android Spinner 组件的应用实例
时间:2019-04-01
本文章向大家介绍Android Spinner 组件的应用实例,主要包括Android Spinner 组件的应用实例使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。
Android Spinner 组件
Spinner: 下拉组件
使用事项:布局在XML 中实现,具体的数据在JAVA 代码中实现;
所用知识点:
数组适配器:ArrayAdapter 用于关系M 层和 C 层;
事件:OnItemSelectedListener;
案列:查看十二星座效果图:
xml:代码如下:
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="fill_parent" android:layout_height="fill_parent" android:orientation="vertical" > <ScrollView android:layout_width="wrap_content" android:layout_height="wrap_content" > <LinearLayout android:layout_width="fill_parent" android:layout_height="fill_parent" android:gravity="center_horizontal" android:orientation="vertical" > <Spinner android:id="@+id/spinner" android:layout_width="300dp" android:layout_height="wrap_content" android:layout_gravity="center_vertical" /> <TextView android:id="@+id/showInfo" android:layout_width="fill_parent" android:layout_height="wrap_content" android:layout_marginLeft="15dp" android:layout_marginRight="15dp" android:gravity="center" android:text=" " /> </LinearLayout> </ScrollView> </LinearLayout>
java代码如下:
package com.example.spinnertest; import java.util.ArrayList; import android.app.Activity; import android.content.res.Resources; import android.os.Bundle; import android.view.View; import android.widget.AdapterView; import android.widget.AdapterView.OnItemSelectedListener; import android.widget.ArrayAdapter; import android.widget.Spinner; import android.widget.TextView; public class MainActivity extends Activity { private Spinner spinner; private TextView tx; private ArrayList<String> list = null; protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); /* 获取TextView 实体对象 , 用于显示星座的详细信息 */ tx = (TextView) findViewById(R.id.showInfo); /* 下拉组件测试 Spinner 对象首先获取 */ spinner = (Spinner) findViewById(R.id.spinner); /* 准备数据源 M , 用集合进行保存 */ list = new ArrayList<String>(); list.add("Aries"); list.add("Taurus"); list.add("Gemini"); list.add("Cancer"); list.add("Leo"); list.add("Virgo"); list.add("Libra"); list.add("Scorpio"); list.add("Sagittarius"); list.add("Capricorn"); list.add("Aquarius"); list.add("Pisces"); /* 实现M 层 与C 层的关系 ,绑定数据 */ /* 参数1:上下文对象; 参数2:系统资源布局方式 ; 参数3:数据对象 */ ArrayAdapter<String> adapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_dropdown_item, list); /* 对V 层和C 层进行关系的绑定; */ spinner.setAdapter(adapter); spinner.setOnItemSelectedListener(new OnItemSelectedListener() { /* 对所有的选择项进行监控 *//* 参3:当前选择项的ID 参4:被选择项在组中的位置,逻辑上与ID 相等,但代表的意义不一样 */ public void onItemSelected(AdapterView<?> arg0, View arg1, int id, long position) { // Toast.makeText(MainActivity.this, "你选择的是第:"+id+"值为:"+list.get(id), 1000).show(); /* 设置tx对象的值 */ String temp = getConstellation(id); tx.setText("\t"+temp); } @Override public void onNothingSelected(AdapterView<?> arg0) { // TODO Auto-generated method stub } }); } /* 显示星座的信息 */ protected String getConstellation(int id){ Resources rs = getResources(); String temp = ""; switch(id){ case 0: temp = rs.getString(R.string.Aries); break; case 1: temp = rs.getString(R.string.Taurus); break; case 2: temp = rs.getString(R.string.Gemini); break; case 3: temp = rs.getString(R.string.Cancer); break; case 4: temp = rs.getString(R.string.Leo); break; case 5: temp = rs.getString(R.string.Virgo); break; case 6: temp = rs.getString(R.string.Libra); break; case 7: temp = rs.getString(R.string.Scorpio); break; case 8: temp = rs.getString(R.string.Sagittarius); break; case 9: temp = rs.getString(R.string.Capricorn); break; case 10: temp = rs.getString(R.string.Aquarius); break; case 11: temp = rs.getString(R.string.Pisces); break; case 12: temp = rs.getString(R.string.Aries); break; } return temp; } }
以上就是Android Spinner 组件的实例详解,如有疑问请留言或者到本站社区交流讨论,感谢阅读,希望能帮助到大家,谢谢大家对本站的支持!
- 您需要来一份82年的代理吗?No.12
- Python 列表生成式(List Comprehensions)
- 微信小程序开发日记:重要的var that=this
- linux学习第二十六篇:正则介绍,grep,sed,awk命令
- Python 迭代(iteration)
- Python 切片(Slice)
- Python函数参数总结(位置参数、默认参数、可变参数、关键字参数和命名关键字参数)
- linux学习第二十七篇:使用w查看系统负载,vmstat,top,sar,nload命令
- Python 函数
- Python set(集合) 这一定是最全的介绍集合的博文
- Spark你一定学得会(二)No.8
- Python dict(字典)
- Python 条件判断
- linux学习第二十五篇:cut,sort,wc,uniq,tee,tr,split命令,shell特殊符号
- java教程
- Java快速入门
- Java 开发环境配置
- Java基本语法
- Java 对象和类
- Java 基本数据类型
- Java 变量类型
- Java 修饰符
- Java 运算符
- Java 循环结构
- Java 分支结构
- Java Number类
- Java Character类
- Java String类
- Java StringBuffer和StringBuilder类
- Java 数组
- Java 日期时间
- Java 正则表达式
- Java 方法
- Java 流(Stream)、文件(File)和IO
- Java 异常处理
- Java 继承
- Java 重写(Override)与重载(Overload)
- Java 多态
- Java 抽象类
- Java 封装
- Java 接口
- Java 包(package)
- Java 数据结构
- Java 集合框架
- Java 泛型
- Java 序列化
- Java 网络编程
- Java 发送邮件
- Java 多线程编程
- Java Applet基础
- Java 文档注释
- Flutter中Contrainer 组件的宽高限制分析
- 10张图带你深入理解Docker容器和镜像
- 手摸手教你撸一个微服务框架-关于服务端的处理
- 聊聊claudb的string command
- windows下安装nodejs
- 【Java面试总结】Java集合
- 《JavaScript 模式》读书笔记(8)— DOM和浏览器模式1
- 《JavaScript 模式》读书笔记(8)— DOM和浏览器模式2
- 5000字 | 24张图带你彻底理解21种并发锁
- JavaScript-变量
- Android应用安装卸载监控
- 细数这些年被困扰过的 TS 问题
- 将WordPress插件Elementor标签插入到WordPress模板文件以使用Elementor编辑
- WordPress自定义新建多区域widget小工具调用
- WordPress调用分类目录 及输出当前分类下的二级目录 和分类文章数量显示