1.只用XML配置来显示列表

在res\values中添加一个arrays.xml

 1 <?xml version="1.0" encoding="utf-8"?>
2 <resources>
3
4 <string-array name="books">
5 <item>口里奇才</item>
6 <item>凸显</item>
7 <item>下雨目前</item>
8 <item>越来越一直在于</item>
9 </string-array>
10
11 </resources>

在主页面的xml中添加Spinner

1     <Spinner
2 android:id="@+id/spi3"
3 android:layout_width="match_parent"
4 android:layout_height="wrap_content"
5 android:entries="@array/books" >
6 </Spinner>

效果

2.用后台动态添加

布局:

1     <Spinner
2 android:id="@+id/spi"
3 android:layout_width="match_parent"
4 android:layout_height="wrap_content" >
5 </Spinner>

添加数据类

 1 package com.example.myadapter;
2
3 import java.util.ArrayList;
4 import java.util.HashMap;
5 import java.util.List;
6 import java.util.Map;
7
8 import com.example.androidspinner.R;
9
10 public class Myadapter {
11
12 public Myadapter() {
13 // TODO Auto-generated constructor stub
14 }
15
16 public static List<String> getData(){
17 List<String> list=new ArrayList<String>();
18 list.add("北京");
19 list.add("武汉");
20 list.add("广州");
21 return list;
22 }
23
24 }

主程序中添加数据绑定

 1 package com.example.androidspinner;
2
3 import java.util.List;
4 import java.util.Map;
5
6 import com.example.myadapter.Myadapter;
7
8 import android.os.Bundle;
9 import android.app.Activity;
10 import android.view.Menu;
11 import android.view.View;
12 import android.widget.AdapterView;
13 import android.widget.AdapterView.OnItemSelectedListener;
14 import android.widget.ArrayAdapter;
15 import android.widget.SimpleAdapter;
16 import android.widget.Spinner;
17
18 public class AndroidSpinnerActivity extends Activity {
19 private Spinner spi;
20
21 @Override
22 protected void onCreate(Bundle savedInstanceState) {
23 super.onCreate(savedInstanceState);
24 setContentView(R.layout.activity_android_spinner);
25 spi = (Spinner) this.findViewById(R.id.spi);
26 List<String> list = Myadapter.getData();
27 ArrayAdapter<String> adapter = new ArrayAdapter<String>(
28 AndroidSpinnerActivity.this,
29 android.R.layout.simple_spinner_item, list);
30 spi.setAdapter(adapter);
31
32 }
33
34
40 }
41
42 @Override
43 public boolean onCreateOptionsMenu(Menu menu) {
44 // Inflate the menu; this adds items to the action bar if it is present.
45 getMenuInflater().inflate(R.menu.activity_android_spinner, menu);
46 return true;
47 }
48
49 }

3.选项加图标

布局:

1     <Spinner
2 android:id="@+id/spi2"
3 android:layout_width="match_parent"
4 android:layout_height="wrap_content" >
5 </Spinner>

添加数据类

 1 package com.example.myadapter;
2
3 import java.util.ArrayList;
4 import java.util.HashMap;
5 import java.util.List;
6 import java.util.Map;
7
8 import com.example.androidspinner.R;
9
10 public class Myadapter {
11
12 public Myadapter() {
13 // TODO Auto-generated constructor stub
14 }
15
16
17 public static List<Map<String, Object>> getMapData(){
18 List<Map<String, Object>> list=new ArrayList<Map<String,Object>>();
19 Map<String, Object> map1=new HashMap<String, Object>();
20 map1.put("logo", R.drawable.add);
21 map1.put("appname", "北京");
22 list.add(map1);
23
24 Map<String, Object> map2=new HashMap<String, Object>();
25 map2.put("logo", R.drawable.application);
26 map2.put("appname", "武汉");
27 list.add(map2);
28 return list;
29
30 }
31
32 }

主程序中添加数据绑定

 1 package com.example.androidspinner;
2
3 import java.util.List;
4 import java.util.Map;
5
6 import com.example.myadapter.Myadapter;
7
8 import android.os.Bundle;
9 import android.app.Activity;
10 import android.view.Menu;
11 import android.view.View;
12 import android.widget.AdapterView;
13 import android.widget.AdapterView.OnItemSelectedListener;
14 import android.widget.ArrayAdapter;
15 import android.widget.SimpleAdapter;
16 import android.widget.Spinner;
17
18 public class AndroidSpinnerActivity extends Activity {
19 private Spinner spi2;
20
21 @Override
22 protected void onCreate(Bundle savedInstanceState) {
23 super.onCreate(savedInstanceState);
24 setContentView(R.layout.activity_android_spinner);
25
26 spi2 = (Spinner) this.findViewById(R.id.spi2);
27
28 List<Map<String, Object>> listMap = Myadapter.getMapData();
29
30 SimpleAdapter simpleAdapter = new SimpleAdapter(
31 AndroidSpinnerActivity.this, listMap, R.layout.items,
32 new String[] { "logo", "appname" }, new int[] { R.id.imgview,
33 R.id.labview });
34 spi2.setAdapter(simpleAdapter);
35
36 spi2.setOnItemSelectedListener(new OnItemSelectedListener() {
37
38 @Override
39 public void onItemSelected(AdapterView<?> parent, View arg1,
40 int position, long id) {
41 String appname=((Map<String,Object>)spi2.getItemAtPosition(position)).get("appname").toString();
42 setTitle(appname);
43 }
44
45 @Override
46 public void onNothingSelected(AdapterView<?> arg0) {
47 // TODO Auto-generated method stub
48
49 }
50 });
51 }
52
53 @Override
54 public boolean onCreateOptionsMenu(Menu menu) {
55 // Inflate the menu; this adds items to the action bar if it is present.
56 getMenuInflater().inflate(R.menu.activity_android_spinner, menu);
57 return true;
58 }
59
60 }

列表选择Spinner的更多相关文章

  1. Android 自学之列表选择框Spinner

    列表选择框(Spinner)与Swing编程里面的Spinner不同,这里的Spinner其实就是一个列表选项框. Spinner是ViewGroup的间接子类,因此他也可作为容器使用. Spinne ...

  2. Android——列表选择框(Spinner)

    通常情况下,如果列表选择框中要显示的列表项是可知的,那么可以将其保存在数组资源文件中,然后通过数组资源来为列表选择框指定列表项.这样就可以在不编写Java代码的情况下实现一个下拉选择框. 1.在布局文 ...

  3. Android Spinner列表选择框

    Spinner Spinner是一个下拉列表,通常用于选择一系列可选择的列表项,它可以使用适配器,也可以直接设置数组源. 1.直接设置数组源 在res/values/strings.xml中设置数组源 ...

  4. Android开发系列(二十一):Spinner的功能和使用方法以及实现列表选择框

    Spinner是一个列表选择框.相当于弹出一个菜单供用户进行选择. Spinner继承AdapterView Spinnet支持的XML的属性: android:entries:使用数组资源设置该下拉 ...

  5. Spinner列表选择框

    Spinner首先它是一个弹出式的列表选择框,由于间接继承了ViewGroup,所以它可以当做一个容器使用; 如果我们可以明确下拉列表中的列表项, 则可以不需要编写代码, 只需要为spinner指定a ...

  6. 在DevExpress程序中使用GridView直接录入数据的时候,增加列表选择的功能

    在我上篇随笔<在DevExpress程序中使用Winform分页控件直接录入数据并保存>中介绍了在GridView以及在其封装的分页控件上做数据的直接录入的处理,介绍情况下数据的保存和校验 ...

  7. Windows Phone 8.1 新特性 - 控件之列表选择控件

    本篇我们来介绍Windows Phone 8.1 新特性中的列表选择控件. 在Windows Phone 8 时代,大家都会使用 LongListSelector 来实现列表选择控件,对数据进行分组显 ...

  8. iOS开发——UI篇&下拉弹出列表选择项效果

    下拉弹出列表选择项效果 右边菜单中的按键,点击弹出一个列表可选择,选择其中一个,响应相应的事件并把文字显示在右边的菜单上:弹出下拉效果使用LMDropdownView插件,可以用POD进行加载pod  ...

  9. Lodop在页面获取打印机列表 选择打印机预览

    利用GET_PRINTER_COUNT,获取打印机个数,然后用GET_PRINTER_NAME(intPrinterIndex);循环获取打印机名称,添加到list列表里,可以让用户在页面就选择打印机 ...

随机推荐

  1. 【比赛】NOIP2017 总结

    一.比赛过程 Day1: 拿到题目后,立即把所有题目都看了一遍,发现没有很虚的期望DP和概率DP,感到很庆幸.然后发现今年的题目顺序好像有点不对,T1是数论,T2像是模拟,这难道是把两天的基础题放到一 ...

  2. 点击--》java9 新特性 详解

    引言: 点击-->java9 新特性 详解 点击-->java8 新特性 详解 正题: 1.局部变量var 将前端思想var关键字引入java后段,自动检测所属于类型,一种情况除外,不能为 ...

  3. Web前端开发神器--WebStorm(JavaScript 开发工具) 8.0.3 中文汉化破解版

    WebStorm(JavaScript 开发工具) 8.0.3 中文汉化破解版 http://www.jb51.net/softs/171905.html WebStorm 是jetbrains公司旗 ...

  4. Linux内核分析实验二:mykernel实验指导(操作系统是如何工作的)

    计算机是如何工作的?(总结)——三个法宝 存储程序计算机工作模型,计算机系统最最基础性的逻辑结构: 函数调用堆栈,高级语言得以运行的基础,只有机器语言和汇编语言的时候堆栈机制对于计算机来说并不那么重要 ...

  5. bzoj5210最大连通子块和

    题解: 考虑朴素的dp:$$f_{u} = max(\sum_{v} f_{v} + w_{u} , 0)  \ \ \ \ h_{u} = max( max_{v} \{ h_{v} \}  , h ...

  6. 【THUSC2017】杜老师

    题目描述 杜老师可是要打+∞年World Final的男人,虽然规则不允许,但是可以改啊! 但是今年WF跟THUSC的时间这么近,所以他造了一个idea就扔下不管了…… 给定L,R,求从L到R的这R− ...

  7. c/c++基本数据类型转换

    If either operand is of type long double, the other operand is converted to type long double. If the ...

  8. 【题解】【THUSC 2016】成绩单 LOJ 2292 区间dp

    Prelude 快THUWC了,所以补一下以前的题. 真的是一道神题啊,网上的题解没几篇,而且还都看不懂,我做了一天才做出来. 传送到LOJ:(>人<:) Solution 直接切入正题. ...

  9. java基础-回调函数(callback)

    java基础-回调函数(callback) 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 回调函数就是一个通过函数指针调用的函数.如果你把函数的指针(地址)作为参数传递给另一个函数 ...

  10. spring中的控制反转

    为什么使用spring框架,控制反转是它的重要优势之一. 传统的程序设计中,某个对象需要被调用时(比如mvc模式中controller调用service),需要调用者自己创建被调用对象. 而在spri ...