文档章节

Android学习笔记(四)

摆渡者
 摆渡者
发布于 2014/03/03 13:51
字数 628
阅读 75
收藏 1

1. 什么是Spinner?

  Spinner是一个在手机上显示的下拉菜单

2. 如何声明一个Spinner?

       静态布局:

  1).在布局文件中使用:

<Spinner android:id=”@+id/spinnerId”
      android:layout_width=”match_parent”
      android:layout_height=”wrap_content”/>

              来声明。

        注意:是大写的Spinner,而非spinner,若写成小写的,则会报错

android.view.InflateException: Binary XML file line #8: Error inflating class spinner

      2).在string.xml中定义一个数组:

<string-array name=” bankArray”>
    <item>工商银行</item>\
    <item>招商银行</item>
    <item>中国银行</item>
    <item>……</item>
</string-array>

   3).创建一个ArrayAdapter

ArrayAdapter<CharSequence> adapter = ArrayAdapter.createFromResource(this, R.array.bankArray, android.R.layout.simple_spinner_item);
// android.R.layout.simple_spinner_item是android自带的一个布局文件,用于定义下拉菜单点击之前的样式
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);

              // android.R.layout.simple_spinner_dropdown_item也是android自带的一个布局文件,用于定义点击下拉菜单弹出来的界面样式

      4).得到Spinner对象,并设置适配器    

spinner = (Spiinner)findViewById(R.id.spinnerId);
spinner.setAdapter(adapter);
spinner.setPrompt(“请选择银行”);//设置弹出的下拉列表的标题

      5).创建监听器(实现android.widget.AdapterView.OnItemSelectedListener接口)

class SpinnerOnSelectedListener implements OnItemSelectedListener{
    @Override//选择了某一个条目执行的方法
    public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {
        //参数1:整个列表对象;2:点击的控件
        //3:点击控件在父控件中的位置;4:选中条目的row id
        String selected = parent.getItemAtPosition(position).toString();
        System.out.println(selected);
    }
    @Override//什么都没选择的时候执行的方法
    public void onNothingSelected(AdapterView<?> parent) {
        System.out.println("Noting selected");
    }
}

     6).为spinner绑定监听器 

 spinner.setOnItemSelectedListener(new SpinnerOnSelectedListener());

3. ArrayAdapter的另一种用法:

     除了可以使用strings.xml文件当中的数组创建ArrayAdapter之外,还可以动态的创建ArrayAdapter:

List<String> list = new ArrayList<String>();
//注意:这里我直接使用了List<String>,这个list中存的就是String。如果不是,那么控件显示的内容则为该对象调用toString()方法后的内容。
list.add(“test1”);
list.add(“test2”);
……

      //这里调用ArrayAdapter的构造函数来创建,参数依次为:上下文、显示条目的布局文件、使用的TextView的ID、要显示的数据

       //这句话的意思就相当于是:把list中的每一个元素用一个R.id.textViewId显示,样式为R.layout.item。

ArrayAdapter adapter = new ArrayAdapter(this, R.layout.item, R.id.textViewId, list);

       下面是item.xml布局文件(这里为了简单起见,只定义了ID、宽和高,各种样式已经省略):

<LinearLayout …….
    <TextView id=”@+id/textViewId”
     android:layout_width=”wrap_content”
     android:layout_height=”wrap_content” />
</LinearLayout>

  注意蓝色的字体为布局文件,红色的为控件的ID,二者必须和new ArrayAdapter的参数对应。

       这样就可以不把数据写死,可以灵活运用。


© 著作权归作者所有

摆渡者
粉丝 345
博文 171
码字总数 206504
作品 0
成都
程序员
私信 提问
Android实战经验之图像处理及特效处理的集锦(总结版)

1 Android学习笔记进阶之在图片上涂鸦(能清屏) 2 Android学习笔记之详细讲解画圆角图片 3 Android学习笔记进阶20之得到图片的缩略图 4 Android学习笔记进阶19之给图片加边框 5 Android学习笔...

xiaosi
2012/03/12
40.2K
25
Android adt bundle 开发环境配置及第一个“Hello world”程序运行

最近在学习Android 顺便记录下学习过程当作复习吧,这是写的第一篇正式博客。 一、jdk环境配置 二、android adt bundle 下载 三、安装SDK 四、模拟器及真机调试 五、第一个程序 Hello world!...

程序猿付显
2014/07/23
19.9K
0
Android 进阶学习笔记整理

一.android系统架构图及各层介绍 1. 应用层:应用是用java语言编写的运行在虚拟机上的程序,比如通讯录,日历,电话,短信,浏览器等。 2. 应用框架层:这一层是编写Google发布的核心应用时所...

FunCode
2018/07/22
0
0
【Android学习总结】之Activity:深入理解、体验Activity的生命周期

【本博客内的文章是本人的学习笔记总结,如有错误请各位批评指正,谢谢!欢迎加入群285077071讨论】 关于Activity的生命周期的学习,我将从以下几个方面入手来全面认识: 一、什么是生命周期...

kinbos
2018/06/26
0
0
ViewSwitcher学习笔记

ViewSwitcher 的作用简单来说就是:在两个视图间转换时显示动画 它的两个子类应该很熟悉,ImageSwitcher:转换图片时增加动画效果; TextSwitcher: 转换文字时增加动画效果; API翻译 一、结构...

无一物
2012/12/20
3.5K
0

没有更多内容

加载失败,请刷新页面

加载更多

debian10使用putty配置交换机console口

前言:Linux的推广普及,需要配合解决实际应用方能有成效! 最近强迫自己用linux进行实际工作,过程很痛苦,还好通过网络一一解决,感谢各位无私网友博客的帮助! 系统:debian10 桌面:xfc...

W_Lu
36分钟前
10
0
aelf Enterprise 0.8.0 beta有奖公测,“Bug奖金计划”重磅开启

2019年9月30日,aelf Enterprise 0.8.0 beta版正式发布。aelf Enterprise 0.8.0 beta是一个完备的区块链系统, 包含完备的区块链系统、开发套件、开发文档、以及配套的基础应用和基础服务。 ...

AELF开发者社区
38分钟前
8
0
oracle 初始化数据库脚本

create user lpf identified by 123456; create tablespace lpf_ts_cms datafile '/opt/app/oracle/product/11.2.0/lpf.dbf' size 200M; alter user lpf default tablespace lpf_ts_cms; sel......

internetafei
42分钟前
7
0
《区块链DAPP开发入门、代码实现、场景应用》笔记1——天外飞仙DAPP

Solidity编程语言解决了编写智能合约的不友好的问题,但是当合约编译并部署之后,对与这些接口的访问,对于一般的使用者来说,门槛有点高, 对普通用户来说也是非常不友好,为了使广大用户理...

柯南和由美
46分钟前
6
0
流程图制作软件推荐_流程图制作软件哪个好

流程图(Flow Chart)是一种表示算法思路的图示,通过特定图形、图表可以直观的说明某一过程。这种过程既可以是生产线上的工艺流程图,也可以标明某项任务必需的管理过程。为了便于识别,绘制...

工具分享
49分钟前
7
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部