列表选择Spinner

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 }

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏我的博客

BaseAdapter简单用法

BaseAdapter就Android应用程序中经常用到的基础数据适配器,它的主要用途是将一组数据传到像ListView、Spinner、Gallery及Gri...

2814
来自专栏Android开发指南

通过代码定义shape/selector

3499
来自专栏向治洪

StickyListHeaders的使用

我们知道在ios中字母的导航有悬停的效果,在android中,git上有大神实现了这种悬停的功能,我们只要将普通的Listview改为StickyListHe...

2485
来自专栏懒人开发

鸿洋AutoLayout代码分析(三):入口类分析

我们可以发现,只是做了name的判断, 如果是属性中的3中Layout, 会自动替换成 对应的AutoXXXLayout 如果不是,直接调用父类的 View...

1032
来自专栏Android开发指南

8.快速索引、listview

3566
来自专栏Android开发指南

4.TableLayout、回调接口

34612
来自专栏Android开发指南

9.代码抽取(adapter)

2759
来自专栏along的开发之旅

<Android编程权威指南>之1.6 Activity.this和this的区别

也就是说,直接在监听器View.OnClickListener里使用this,代表的是创建的这个匿名类,也就是实现了View.OnClickListener接口...

753
来自专栏xingoo, 一个梦想做发明家的程序员

【插件开发】—— 6 SWT 复杂控件使用以及布局

前文回顾: 1 插件学习篇 2 简单的建立插件工程以及模型文件分析 3 利用扩展点,开发透视图 4 SWT编程须知 5 SWT简单控件的使用与布局搭...

2669
来自专栏曾大稳的博客

Android setContentView()源码流程分析

我们在Activity创建的时候,都用调用setContentView()函数来设置界面,下面我们通过源码来分析setContentView()的流程。 我们先...

1293

扫码关注云+社区

领取腾讯云代金券