本文主要包括以下内容

  1. Spinner的使用
  2. Gallery的使用

Spinner的使用

Spinner的实现过程是

1. 在xml文件中定义Spinner的控件

2. 在activity中获取Spinner控件

3. 定义Spinner下拉列表项数组并将下拉项的内容添加到这个数组中,通过这个数组建立一个下拉列表的适配器

4. 将上3中的适配器配置给获取的Spinner控件

5. 设置下拉列表的显示样式

6. 为获得的Spinner控件添加事件监听

在XML文件中定义

  1. //在主XML中<include android:id="@+id/sp_chose" layout="@layout/spinner_down"/>
  2. <?xml version="1.0" encoding="utf-8"?>
  3. <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
  4. android:layout_width="fill_parent"
  5. android:layout_height="30dip"
  6. android:orientation="horizontal"
  7. android:background="@drawable/filter_bg"
  8. android:layout_marginTop="5dip"
  9. android:layout_marginLeft="5dip"
  10. android:layout_marginRight="5dip">
  11. <Spinner
  12. android:id="@+id/nearby_distance_spinner"
  13. style="@style/nearby_spinner_style" />
  14. <Spinner
  15. android:id="@+id/nearby_class_spinner"
  16. style="@style/nearby_spinner_style" />
  17. <Spinner
  18. android:id="@+id/nearby_away_spinner"
  19. style="@style/nearby_spinner_style" />
  20. </LinearLayout>

其中背景图片为

nearby_spinner_style为

  1. <style name="nearby_spinner_style">
  2. <item name="android:layout_width">0.0dip</item>
  3. <item name="android:layout_height">wrap_content</item>
  4. <item name="android:background">@null</item>
  5. <item name="android:layout_marginTop">6dip</item>
  6. <item name="android:layout_weight">1.0</item>
  7. </style>

找到Spinner并初始化适配器

  1. private void init() {
  2. // TODO Auto-generated method stub
  3. topText=(TextView) findViewById(R.id.tv_chose_shop);
  4. topText.setText(getIntent().getStringExtra("type"));
  5. disSpi=(Spinner) findViewById(R.id.nearby_distance_spinner);
  6. claSpi=(Spinner) findViewById(R.id.nearby_class_spinner);
  7. awaySpi=(Spinner) findViewById(R.id.nearby_away_spinner);
  8. disAdapter=new ArrayAdapter<String>(this, R.layout.nearby_spinner_text, DIS_DATE);
  9. claAdapter=new ArrayAdapter<String>(this, R.layout.nearby_spinner_text, CLASS_DATE);
  10. awayAdapter=new ArrayAdapter<String>(this, R.layout.nearby_spinner_text, AWAY_DATE);
  11. }

其中nearby_spinner_text为

  1. <?xml version="1.0" encoding="utf-8"?>
  2. <TextView xmlns:android="http://schemas.android.com/apk/res/android"
  3. android:id="@android:id/text1"
  4. style="?android:attr/spinnerDropDownItemStyle"
  5. android:singleLine="true"
  6. android:layout_width="fill_parent"
  7. android:layout_height="wrap_content"
  8. android:gravity="center_vertical"
  9. android:textColor="#ffffff"
  10. android:textSize="12sp"/>

设置下拉列表的显示样式并且将适配器配置给spinner

  1. //设置列表项显示风格为完全显示
  2. disAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  3. claAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  4. awayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
  5. disSpi.setAdapter(disAdapter);
  6. claSpi.setAdapter(claAdapter);
  7. awaySpi.setAdapter(awayAdapter);
  8. disSpi.setSelection(2);
  9. claSpi.setSelection(0);
  10. awaySpi.setSelection(0);

设置监听事件

  1. disSpi.setOnItemSelectedListener(new OnItemSelectedListener() {
  2. @Override
  3. public void onItemSelected(AdapterView<?> parent, View view,
  4. int position, long id) {
  5. // TODO Auto-generated method stub
  6. Toast.makeText(getApplicationContext(), DIS_DATE[position], 0).show();
  7. }
  8. @Override
  9. public void onNothingSelected(AdapterView<?> parent) {
  10. // TODO Auto-generated method stub
  11. }
  12. });

完成,效果如下



Android之UI控件的更多相关文章

  1. [Android] Android 让UI控件固定于底部的几种方法

    Android 让UI控件固定于底部的几种方法1.采用linearlayout布局:android:layout_height="0dp" <!-- 这里不能设置fill_p ...

  2. Android 优秀UI控件 ---- FlowingDrawer

    1,前天在git上看到了一个不错的控件 ,最近两天项目也没有那么赶了,就抽时间来写写代码,锻炼一下手感,先看一下效果吧. 2 整体来看 ,主要是有两块来实现的,①主界面的RecyclerView ,② ...

  3. Android 常用UI控件之TabHost(5)Tab栏在底部且在最上层也不盖tab页

    tab栏在底部 <TabHost android:id="@android:id/tabhost" android:layout_width="match_pare ...

  4. Android 常用UI控件之TabHost(4)实现当Tab栏有多个tab时,可以左右滑动

    <!-- <HorizontalScrollView android:id="@+id/horizontalScrollView1" android:layout_wi ...

  5. Android 常用UI控件之TabHost(2)简单示例

    1,布局 <FrameLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tool ...

  6. Android 常用UI控件之TabHost(1)TabHost的两种布局方式

    TabHost是Android中的tab组件. TabHost布局文件的基本结构 TabHost下有个layout,这个layout中有TabWidget与FrameLayout.TabWidget是 ...

  7. Android 常用UI控件之TabHost(3)在4.0不显示图标的解决方案

    1,自定义 TabWidget 上每个tab的view 2,用多个图片

  8. Android 常用UI控件之Tab控件的实现方案

    实现Tab的方式有多种 1,ActionBar有两种模式可以实现,但是已经过期 tab模式tab在顶部,分裂模式tab在底部(同时所有action item都在底部). 2,PagerTitleStr ...

  9. ANDROID L——Material Design详解(UI控件)

    转载请注明本文出自大苞米的博客(http://blog.csdn.net/a396901990),谢谢支持! Android L: Google已经确认Android L就是Android Lolli ...

随机推荐

  1. Android 获取本地图片

    MainActivity.java public class RegisterActivity extends AppCompatActivity { private ImageView iv; @O ...

  2. ecshop后台导航修改教程说明

    ecshop后台导航修改教程说明 ECSHOP教程/ ecshop教程网(www.ecshop119.com) 2014-06-25   需要操作的文件为: 1.修改admin\includes\in ...

  3. linux 运行级别与chkconfig

    一.Linux的运行级别 在装MySQL的时候,才知道了Linux的运行级别这么一回事.汗…自己太水了…下面总结一下: 什么是运行级别呢?简单点来说,运行级别就是操作系统当前正在运行的功能级别.级别是 ...

  4. VirtualBox下安装rhel5.5 linux系统

    以前也用过VMware server和VMware workstation虚拟机,现在使用了一段时间VirtualBox,感觉它比较轻巧,很适合我,在Win7系统下用起来很方便.下面详细介绍下在Vir ...

  5. Matlab之findobj()

    findobj findobj:特殊属性的图形对象 语法: 1.findobj: findobj返回根对象的句柄和所有子对象(findobj returns handles of the root o ...

  6. 关于angularjs中的ng-class 变量问题

    时常会用到ng-class.非常的方便,基本的用法就是 当title等于通金所的时候,就增加error-tip这个class,但是,我们有时候这个值不能写死,明白我的意思吗,明白吗,好吧,反正就要是个 ...

  7. Sql分隔字符串方法--split

    SET ANSI_NULLS ON GO SET QUOTED_IDENTIFIER ON GO --DEClARE @str varchar(500)='a,b2,v5,d3,ew,2,3,dd' ...

  8. MyBatis 3源码分析

    Mybatis3.2源码分析: 一.加载配置文件.     使用SAX解析配置文件.读取xml配置文件后,调用XMLConfigBuilder.parse()方法,在parse方法中再调用parseC ...

  9. Linux内核之数据双链表

    导读 Linux 内核中自己实现了双向链表,可以在 include/linux/list.h 找到定义.我们将会首先从双向链表数据结构开始介绍内核里的数据结构.为什么?因为它在内核里使用的很广泛,你只 ...

  10. 电够动力足——认识主板上的CPU供电模块

    CPU供电模块有啥用 CPU供电模块从字面上理解,就是专给CPU供电的一个电子元器件组合.因为CPU工作时就跟发动机一样,油(电)提供得稳不稳定.品质高不高就是CPU供电模块干的事情.反过来说,如果C ...