对于Spinner控件的介绍和使用方法,可以先看之前写过的一篇博客:Spinner控件详解

本篇就基于这个知识点完成一个简单的小案例:

根据介绍,先写一个布局:

<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="fill_parent"
android:layout_height="fill_parent"
android:orientation="vertical" > <TextView
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:text="请选择您喜欢的城市:" /> <Spinner
android:id="@+id/spinner"
android:layout_width="fill_parent"
android:layout_height="wrap_content"
android:spinnerMode="dialog"
android:entries="@array/city_labels" ><!-- 使用entries属性,传入的是values文件夹下的arrays.xml内的数据 -->
</Spinner>
<!--android:spinnerMode="dialog" 设置弹出的形式为对话框形式 -->
<TextView
android:id="@+id/text"
android:layout_width="fill_parent"
android:layout_height="wrap_content" /> <Spinner
android:popupBackground="#9900ff00"
android:id="@+id/spinnerCountry"
android:layout_width="fill_parent"
android:layout_height="wrap_content" ><!-- 通过适配器来加入属性值 -->
<!-- 动态载入数据 android:popupBackground="#9900ff00"设置背景-->
</Spinner> </LinearLayout>

而数据源在valuse下的String.xml里面写:

<?xml version="1.0" encoding="utf-8"?>
<resources> <string name="app_name">Test</string>
<string name="action_settings">Settings</string>
<string name="hello_world">Hello world!</string> <string-array name="city_labels">
<item>北京 </item>
<item>上海 </item>
<item>广州 </item>
<item>深圳 </item>
</string-array>
</resources>

对应的Activity中的代码谢了出来:

package com.example.test;

import java.util.ArrayList;
import java.util.List; import android.app.Activity;
import android.graphics.Color;
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;
import android.widget.Toast; public class MainActivity extends Activity {
private Spinner spinner, spinnerCountry;
private TextView textView;
private List<CharSequence> data = null;
private ArrayAdapter<CharSequence> adapter; public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState); // 生命周期方法
super.setContentView(R.layout.activity_main); // 设置要使用的布局管理器
spinner = (Spinner) findViewById(R.id.spinner);
textView = (TextView) findViewById(R.id.text);
spinnerCountry = (Spinner) findViewById(R.id.spinnerCountry); spinnerCountry.setPrompt("");// 在列表中显示
data = new ArrayList<CharSequence>();
data.add("中國");
data.add("美國");
data.add("日本");
adapter = new ArrayAdapter<CharSequence>(this,
android.R.layout.simple_spinner_dropdown_item, this.data);//定义下拉列表
//adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinnerCountry.setAdapter(adapter); spinner.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
String[] cities = getResources().getStringArray(
R.array.city_labels);// 获取列表数据
textView.setText("您喜欢的城市是:" + cities[position]);// 显示 } public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub }
}); spinnerCountry.setOnItemSelectedListener(new OnItemSelectedListener() { public void onItemSelected(AdapterView<?> parent, View view,
int position, long id) {
//String[] countries = data.toArray(new String[data.size()]);// 获取列表数据 ,an array of the elements from this List.
Toast.makeText(MainActivity.this, "您的国籍是:"+data.get(position), Toast.LENGTH_SHORT).show(); } public void onNothingSelected(AdapterView<?> parent) {
// TODO Auto-generated method stub }
}); }
}

运行展示:

模拟器下一个Spinner是一个绿色背景,不知道为何录屏之后是上边效果。。。

Android简易实战教程--第四十话《Spinner》的更多相关文章

  1. Android简易实战教程--第五十话《动画扫描》

    祝新年快乐!2017(一起)前行. 转载博客请注明出处:道龙的博客 本篇简答的小案例,使用动画知识,完成一个类似雷达扫描效果,并且加入自定义进度条.对于自定义进度条前面有很详细的解析和案例了,本篇就结 ...

  2. Android简易实战教程--第四十二话《Spinner下拉级联效果》

    本篇承接第四十话第四十话<Spinner> 参考博客:http://blog.csdn.net/yayun0516 进入正题: Strings加入第一级数据: <string-arr ...

  3. Android简易实战教程--第四十六话《RecyclerView竖向和横向滚动》

    Android5.X后,引入了RecyclerView,这个控件使用起来非常的方便,不但可以完成listView的效果,而且还可以实现ListView无法实现的效果.当然,在新能方便也做了大大的提高. ...

  4. Android简易实战教程--第四十八话《Android - Timer、TimerTask和Handler实现倒计时》

    之前本专栏文章中的小案例有写到:第三十九话<Chronometer实现倒计时> 以及使用异步实现倒计时:第三十三话< AsyncTask异步倒计时> 本篇文章 结合Timer. ...

  5. Android简易实战教程--第四十九话《满屏拖动的控件》

    今天做个有意思的效果吧,控件的拖拽,简单实用,逻辑清晰点3分钟看完. 说的很高大上,其实就是拖动Button按钮跟着鼠标位置满手机屏幕跑罢了. 直接上简单的代码吧: public class Main ...

  6. Android简易实战教程--第四十五话《几种对话框》

    Android中提供了各种原生的对话框,在使用简单的功能的时候,还不比考虑自定义,使用原生的也能完成功能.本篇简单小案例就介绍三种对话框. 还是直接上代码吧: 布局中三个点击事件的按钮: <Li ...

  7. Android简易实战教程--第四十四话《ScrollView和HorizontalScrollView简单使用》

    一.ScrollView 由于手机屏幕的高度有限,当普通布局放不下现实和的内容时,ScrollView视图(滚动视图)就会派上用场,因为数据可以往下滚动显示. 二.HorizontalScrollVi ...

  8. Android简易实战教程--第四十七话《使用OKhttp回调方式获取网络信息》

    在之前的小案例中写过一篇使用HttpUrlConnection获取网络数据的例子.在OKhttp盛行的时代,当然要学会怎么使用它,本篇就对其基本使用做一个介绍,然后再使用它的接口回调的方式获取相同的数 ...

  9. Android简易实战教程--第四十三话《上拉加载与下拉刷新》

    ListView的下拉刷新很常见,很多开源的框架都能做到这个效果,当然也可以自己去实现.本篇案例是基于xlistview的. 布局: <RelativeLayout xmlns:android= ...

随机推荐

  1. 集合(list、set和map)区别

    1.List,Set都是继承自Collection接口,Map则不是 2.List特点:元素有放入顺序,元素可重复:另外list支持for循环,也就是通过下标来遍历,也可以用迭代器, 3.Set特点: ...

  2. 关于jsp页面加载时报错500的问题

    先说一下,问题的发生,个人做了个小系统,成品以后运行了几次,没有问题,结果最后一次测试时,发现登陆页面报错了: 账号密码输入正确,经过后台登陆后,按理说是应该进入登陆成功后的jsp页面,然而结果却是: ...

  3. drupal 8 之 captcha模块

    captcha模块的作用: 添加验证码表单 一.模块下载 https://www.drupal.org/project/captcha 二.安装模块 [扩展]>[+安装新的模块] 在模块页面,复 ...

  4. [LeetCode] Daily Temperatures 日常温度

    Given a list of daily temperatures, produce a list that, for each day in the input, tells you how ma ...

  5. 使用脚本删除hive分区中的问题(expecting KW_EXCHANGE near mytable in alter exchange partition)

  6. DDD实战进阶第一波(六):开发一般业务的大健康行业直销系统(实现产品上下文仓储与应用服务层)

    前一篇文章我们完成了产品上下文的领域层,我们已经有了关于产品方面的简单领域逻辑,我们接着来实现产品上下文关于仓储持久化与应用层的用例如何来协调 领域逻辑与仓储持久化. 首先大家需要明确的是,产品上下文 ...

  7. java制作验证码(java验证码小程序)

    手动制作java的验证码 Web应用验证码的组成: (1)输入框 (2)显示验证码的图片 验证码的制作流程: 生成验证码的容器使用 j2ee的servlet 生成图片需要的类: (1) Buffere ...

  8. servlet学习总结

    一.web工程结构 1.HTTP协议(hyper text transfer protocol)(超文本传输协议) 机制:请求/响应 机制(request/response)(HttpServletR ...

  9. [HNOI 2009]最小圈

    Description 考虑带权的有向图$G=(V,E)$以及$w:E\rightarrow R$,每条边$e=(i,j)(i\neq j,i\in V,j\in V)$的权值定义为$w_{i,j}$ ...

  10. [bzoj5015][Snoi2017]礼物

    来自FallDream的博客,未经允许,请勿转载,谢谢. 热情好客的请森林中的朋友们吃饭,他的朋友被编号为 1-N,每个到来的朋友都会带给他一些礼物:.其中,第一个朋友会带给他 1 个,之后,每一个朋 ...