博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Android-spinner详解
阅读量:6877 次
发布时间:2019-06-26

本文共 3911 字,大约阅读时间需要 13 分钟。

Spinner控件也是一种列表类型的控件,它的继承关系如下:

java.lang.Object
   ↳ android.view.View
     ↳ android.view.ViewGroup
       ↳ android.widget.AdapterView<T extends android.widget.Adapter>
         ↳ android.widget.AbsSpinner
           ↳ android.widget.Spinner
android.widget.Spinner 继承了android.view.ViewGroup类。下面安排一个案例如图6-5,有两个Spinner,颜色选择Spinner和星座选择 Spinner。点击颜色选择Spinner右边的 按钮,如图6-6所示,弹出单选对话框。
   

图6-5 Spinner控件                           图6-6 颜色选择Spinner
点击星座选择Spinner右边的 按钮,如图6-7所示,弹出列表对话框。
 

图6-7 星座选择Spinner
程序代码请参考代码清单6-3:
【代码清单6-3】 chapter6_2/src/com/work/SpinnerActivity.java

public class SpinnerActivity extends Activity {
@Override public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); setContentView(R.layout.main); final TextView txt2 = (TextView) findViewById(R.id.TextView02); Spinner s1 = (Spinner) findViewById(R.id.Spinner01); final ArrayAdapter
adapter = ArrayAdapter.createFromResource( this, R.array.colors, android.R.layout.simple_spinner_item); adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); s1.setAdapter(adapter); s1.setOnItemSelectedListener( new OnItemSelectedListener() {
public void onItemSelected( AdapterView
parent, View view, int position, long id) {
txt2.setText(adapter.getItem(position).toString()); } public void onNothingSelected(AdapterView
parent) {
txt2.setText("没选中的"); } }); final TextView txt4 = (TextView) findViewById(R.id.TextView04); Spinner s2 = (Spinner) findViewById(R.id.Spinner02); ArrayAdapter
adapterC = new ArrayAdapter
(this, android.R.layout.simple_spinner_item, CONSTELLATIONS); adapterC.setDropDownViewResource(android.R.layout.simple_spinner_item); s2.setAdapter(adapterC); s2.setOnItemSelectedListener( new OnItemSelectedListener() {
public void onItemSelected( AdapterView
parent, View view, int position, long id) {
txt4.setText(CONSTELLATIONS[position]); } public void onNothingSelected(AdapterView
parent) {
txt4.setText("没选中的"); } }); } static final String[] CONSTELLATIONS = new String[] {
"白羊座", "金牛座", "双子座", "巨蟹座", "狮子座", "处女座", "天枰座", "天蝎座", "射手座", "魔蝎座", "水瓶座", "双鱼座" }; } 第一个颜色选择Spinner数据来源于Values文件夹内的arrays.xml文件,
红色
橙色
黄色
绿色
蓝色
紫色
通过下面的方法从一个资源XML文件中加载数据,创建一个数组类的适配器对象,布局文件是使用系统提供的layout.simple_spinner_item,这里布局文件设置的是Spinner布局样式。 final ArrayAdapter
adapter = ArrayAdapter.createFromResource( this, R.array.colors, android.R.layout.simple_spinner_item); 而弹出的下拉列表的样式是由Spinner的适配器的setDropDownViewResource()方法设置的。 adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item); 第二个Spinner用于星座选择,数据是用数组存储的。这两个Spinner的setOnItemSelectedListener()方法的事件处理如下: s1.setOnItemSelectedListener( new OnItemSelectedListener() {
public void onItemSelected( AdapterView
parent, View view, int position, long id) {
txt2.setText(adapter.getItem(position).toString()); } public void onNothingSelected(AdapterView
parent) {
txt2.setText("没选中的"); } });

其中的onItemSelected(AdapterView<?> parent, View view, int position, long id)方法是选中选择项目时触发的,其中的position选择项目的位置,id是选择项目的编号。而什么都不选的方法是 onNothingSelected(AdapterView<?> parent)。
                                出自《Android开发案例驱动教程》第六章

转载于:https://www.cnblogs.com/516inc/archive/2011/10/30/2229203.html

你可能感兴趣的文章
转载/验证码
查看>>
Surface、SurfaceView、SurfaceHolder和SurfaceHolder.Callback之间的联系
查看>>
什么是Data Store and Data Collector?
查看>>
我的友情链接
查看>>
php培训11.30
查看>>
Effective Java读后感
查看>>
windows下两个无线网卡 一个内网 一个外网
查看>>
tcp nat 负载均衡
查看>>
起点,游戏开发的梦想与技能点
查看>>
MPLS 流量工程的配置与各大属性调整详解
查看>>
107个常用Javascript语句
查看>>
我的友情链接
查看>>
Dataram_RAMDisk_v4_0_0安装和配置
查看>>
在window XP下使用vsphere client 5.5 访问vCenter 或者 ESXi5.5 连接错误
查看>>
35 个超棒的 Coming Soon 页面设计案例
查看>>
C语言第四天(位运算)
查看>>
硬RAID可以为NVMe SSD数据可靠性保驾护航吗?
查看>>
iPad 2 移植Siri 新手完全教程 适用所有越狱设备
查看>>
编程题:用函数实现,用户输入年月日,来计算出该日期为当年第几天?
查看>>
Pro Android学习笔记(十一):了解Intent(中)
查看>>