列表选择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 }
复制代码

本文转自欢醉博客园博客,原文链接http://www.cnblogs.com/zhangs1986/archive/2013/01/22/2871112.html如需转载请自行联系原作者


欢醉

相关文章
|
5天前
|
存储 关系型数据库 分布式数据库
PostgreSQL 18 发布,快来 PolarDB 尝鲜!
PostgreSQL 18 发布,PolarDB for PostgreSQL 全面兼容。新版本支持异步I/O、UUIDv7、虚拟生成列、逻辑复制增强及OAuth认证,显著提升性能与安全。PolarDB-PG 18 支持存算分离架构,融合海量弹性存储与极致计算性能,搭配丰富插件生态,为企业提供高效、稳定、灵活的云数据库解决方案,助力企业数字化转型如虎添翼!
|
16天前
|
弹性计算 关系型数据库 微服务
基于 Docker 与 Kubernetes(K3s)的微服务:阿里云生产环境扩容实践
在微服务架构中,如何实现“稳定扩容”与“成本可控”是企业面临的核心挑战。本文结合 Python FastAPI 微服务实战,详解如何基于阿里云基础设施,利用 Docker 封装服务、K3s 实现容器编排,构建生产级微服务架构。内容涵盖容器构建、集群部署、自动扩缩容、可观测性等关键环节,适配阿里云资源特性与服务生态,助力企业打造低成本、高可靠、易扩展的微服务解决方案。
1315 5
|
2天前
|
监控 JavaScript Java
基于大模型技术的反欺诈知识问答系统
随着互联网与金融科技发展,网络欺诈频发,构建高效反欺诈平台成为迫切需求。本文基于Java、Vue.js、Spring Boot与MySQL技术,设计实现集欺诈识别、宣传教育、用户互动于一体的反欺诈系统,提升公众防范意识,助力企业合规与用户权益保护。
|
15天前
|
机器学习/深度学习 人工智能 前端开发
通义DeepResearch全面开源!同步分享可落地的高阶Agent构建方法论
通义研究团队开源发布通义 DeepResearch —— 首个在性能上可与 OpenAI DeepResearch 相媲美、并在多项权威基准测试中取得领先表现的全开源 Web Agent。
1363 87
|
2天前
|
JavaScript Java 大数据
基于JavaWeb的销售管理系统设计系统
本系统基于Java、MySQL、Spring Boot与Vue.js技术,构建高效、可扩展的销售管理平台,实现客户、订单、数据可视化等全流程自动化管理,提升企业运营效率与决策能力。
|
4天前
|
弹性计算 安全 数据安全/隐私保护
2025年阿里云域名备案流程(新手图文详细流程)
本文图文详解阿里云账号注册、服务器租赁、域名购买及备案全流程,涵盖企业实名认证、信息模板创建、域名备案提交与管局审核等关键步骤,助您快速完成网站上线前的准备工作。
197 82
2025年阿里云域名备案流程(新手图文详细流程)