这两天研究了一下利用ArrayAdapter和Spinner实现下拉列表的功能,现将代码与大家共享:

代码1—添加名为“Area.java”的文件:

package com.ghj.vo;import java.io.Serializable;public class Area implements Serializable {private static final long serialVersionUID = 6262838923156998909L;private String id;private String name;public Area(String id, String name) {this.id = id;this.name = name;}public String getId() {return id;}public void setId(String id) {this.id = id;}public String getName() {return name;}public void setName(String name) {this.name = name;}@Overridepublic String toString() {return name;}
}

注意:上面Area类重写了toString方法

代码2—添加名为“SelectActivity.java”的文件:

package com.ghj.activity;import java.util.ArrayList;
import java.util.List;import android.app.Activity;
import android.os.Bundle;
import android.view.View;
import android.widget.AdapterView;
import android.widget.ArrayAdapter;
import android.widget.Spinner;
import android.widget.Toast;import com.ghj.vo.Area;public class SelectActivity extends Activity {private Spinner selectSpinner;@Overridepublic void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_select);selectSpinner = (Spinner) findViewById(R.id.spinner);List<Area> areaList = getSpinnerData();ArrayAdapter<Area> adapter = new ArrayAdapter<Area>(this, android.R.layout.simple_spinner_item, areaList);adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);selectSpinner.setAdapter(adapter);setDefaultSpinner(areaList, "07bb7787-29eb-4c83-a781-e4fdfff398f5");//设置默认选中项selectSpinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {@Overridepublic void onItemSelected(AdapterView<?> parent, View view, int position, long id) {Area area = (Area) selectSpinner.getSelectedItem();Toast.makeText(SelectActivity.this, area.getId() + "→" + area.getName(), Toast.LENGTH_LONG).show();}@Overridepublic void onNothingSelected(AdapterView<?> parent) {              }});}/*** 设置下拉列表默认选中项* * @author 高焕杰*/private void setDefaultSpinner(List<Area> areaList, String id){for (int i = 0; i < areaList.size(); i++) {if(id.equals(areaList.get(i).getId())){selectSpinner.setSelection(i,true);break;}}}private List<Area> getSpinnerData(){List<Area> areaList = new ArrayList<Area>();areaList.add(new Area("40c73928-7cfc-4830-9e38-e019e0637400", "天津"));areaList.add(new Area("b1ce40fa-d79d-4e2a-82e0-7ef8ca90bdf5", "上海"));areaList.add(new Area("0888b0af-b7a6-4fbb-a400-0f3050372f1d", "重庆"));areaList.add(new Area("32a308c8-f985-42b6-bf92-45c5723b95ed", "北京"));areaList.add(new Area("07bb7787-29eb-4c83-a781-e4fdfff398f5", "浙江省"));areaList.add(new Area("18618a4a-55e7-4028-b757-dc2c0fc07d25", "江苏省"));areaList.add(new Area("1ebf214f-09eb-4700-907f-a4ecb05859c4", "辽宁省"));areaList.add(new Area("3792f25c-2e69-423a-9a3c-6b798595f6e0", "湖南省"));areaList.add(new Area("3ed3babe-03ab-43b7-9600-3c57ae3ce73c", "贵州省"));areaList.add(new Area("5866f512-5b59-495a-8db9-e8fb3ef3f8b3", "台湾省"));areaList.add(new Area("8819d96d-006b-4eb4-aef8-5ece3c65a1ce", "福建省"));areaList.add(new Area("888d4f82-a350-461e-bc18-f5910097c8f7", "四川省"));areaList.add(new Area("93d45f23-0898-4d61-b3b0-f3ea116755bf", "云南省"));areaList.add(new Area("afb8aa76-c4fb-4b03-beb3-be1f2b5452b5", "吉林省"));areaList.add(new Area("b3d5f316-286e-4a9b-959d-8d62a5dc3a85", "湖北省"));areaList.add(new Area("b42bf54b-c625-4d50-8368-5d5b2771781c", "甘肃省"));areaList.add(new Area("b53544bf-68ed-4899-b41b-9ad8fbfbf5d2", "河北省"));areaList.add(new Area("be7d1660-7d7d-43c4-a2f0-b90e982c6e69", "海南省"));areaList.add(new Area("d74167e5-546e-46b8-b561-5dfdba5a8c0b", "山西省"));areaList.add(new Area("db5c6c99-02f8-4a63-95fa-3ee1fe99bedb", "河南省"));areaList.add(new Area("dc0a7c06-83fb-425b-a4b2-1382bde1edc0", "山东省"));areaList.add(new Area("e21f5930-7bb4-4853-bed0-282e91ef8b43", "江西省"));areaList.add(new Area("e634c6bd-c3a1-474c-b9e1-542a6cb21f1d", "安徽省"));areaList.add(new Area("e6a7fc64-483c-4646-a5da-a505e7eb1188", "广东省"));areaList.add(new Area("f5d74601-d950-4dfa-ab2b-92419b7acb9d", "陕西省"));areaList.add(new Area("f5f666fe-8adc-4f41-9e7d-7bfecc71fcd3", "青海省"));areaList.add(new Area("94d8d374-75d7-4fd9-ba2b-861c07633625", "黑龙江省"));areaList.add(new Area("09f576c9-f2d7-4c7f-a3bd-885c4e233a72", "西藏自治区"));areaList.add(new Area("ea3d0b1f-7834-40b5-aed7-e6b2230afac7", "内蒙古自治区"));areaList.add(new Area("1599f19b-205c-4ac7-9340-b13d41715871", "广西壮族自治区"));areaList.add(new Area("450e6119-2921-445e-8d0e-b345b9c71f3f", "香港特别行政区"));areaList.add(new Area("992afa93-c9c0-4f1d-b8ce-cafd35f06358", "宁夏回族自治区"));areaList.add(new Area("f6b4b94c-0506-469d-bcc1-437cb3c2ae70", "澳门特别行政区"));areaList.add(new Area("0ff240ce-df6c-49c8-83ec-837667b6a748", "新疆维吾尔自治区"));return areaList;}
}

代码3—添加名为“activity_select.xml”的文件:

<?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" ><Spinnerandroid:id="@+id/spinner"android:layout_width="fill_parent"android:layout_height="wrap_content" />
</LinearLayout>

代码4—修改名为“styles.xml”的文件:

<resources><!--Base application theme, dependent on API level. This theme is replacedby AppBaseTheme from res/values-vXX/styles.xml on newer devices.--><style name="AppBaseTheme" parent="android:Theme.Light"><!--Theme customizations available in newer API levels can go inres/values-vXX/styles.xml, while customizations related tobackward-compatibility can go here.--></style><!-- Application theme. --><style name="AppTheme" parent="android:Theme.Light"><!-- All customizations that are NOT specific to a particular API-level can go here. --></style></resources>

0分下载示例

如何借助ArrayAdapter和Spinner实现下拉列表相关推荐

  1. Android实用笔记——使用Spinner实现下拉列表

    2019独角兽企业重金招聘Python工程师标准>>> 1.编辑activity_main.xml <?xml version="1.0" encoding ...

  2. android spinner 简书,【Android】Spinner:下拉列表笔记

    AdapterView使用方式都是类似的,都是通过适配器来适配数据源,然后将适配器设置到对应的AdapterView上进行显示 在Spinner中呈现自定义的一些属性值 a.在res-->val ...

  3. Mono for Android 篇二 使用Spinner 实现下拉列表读取Browser.BookmarksUri

    http://www.cnblogs.com/ivanyb/archive/2013/03/05/2944818.html 1.首先在VS2010里面创建一个Android Application 简 ...

  4. 【Android】 Android中spinner下拉列表的使用

    今天学习了Spinner组件,使用Spinner相当于从下拉列表中选择项目,下面演示一下Spinner的使用(分别使用ArrayAdapter和自定义Adapter实现) (一):使用ArrayAda ...

  5. android如何创建spinner组件,Andriod开发之下拉列表控件(Spinner)的用法

    Spinner是Android的下拉列表控件,今天对这个控件进行了学习,发现该控件比其它简单控件使用起来稍微复杂,特地将Spinner控件的使用方法以及注意事项记录下来,以备后用. Spinner控件 ...

  6. UI组件之AdapterView及其子类(三)Spinner控件详解

    Spinner提供了从一个数据集合中快速选择一项值的办法.默认情况下Spinner显示的是当前选择的值,点击Spinner会弹出一个包含所有可选值的dropdown菜单或者一个dialog对话框,从该 ...

  7. 安卓基础学习 Day19|安卓高级控件------下拉列表

    目录 下拉列表(spinner) 下拉列表(数组适配器.列表框形式) 1.提出要求 2.主布局资源文件 3.主界面 4.条目布局文件 下拉列表(数组适配器.对话框形式) 1.提出要求 2.主布局资源文 ...

  8. Android学习之下拉列表

    下拉列表 在Android中,官方为我们提供了用来实现下拉列表的组件Spinner,我们使用这个组件就可以完成下拉列表的创建. 下拉列表的两种实现方式 静态创建就是在布局文件中使用 android:e ...

  9. Acitivity(页面)之间的跳转,ProgressBar 进度条,PopupWindow 弹出框,Dialog 对话框,Spinner下拉框

    Acitivity(页面)之间的跳转 Acitivity(页面)之间的跳转需要使用到 Intent(意图) Intent intent = new Intent(MainActivity.this(从 ...

  10. android spinner自定义样式,android自定义Spinner下拉菜单(下拉列表框)样式

    在Android中Spinner就是下拉菜单,它相当于HTML中的标签. Android中提供的Spinner Widget下拉菜单已经非常好用了,样式也适用, 不过我们还是可以通过定义xml的方式来 ...

最新文章

  1. CUDA高性能计算经典问题:前缀和
  2. cocos2d-js 中的Chipmunk矢量:cp.Vect
  3. 【PAT乙级】1083 是否存在相等的差 (20 分)
  4. Tomcat 怎么停止服务的?
  5. OSG与opengl的shader结合
  6. 双硬盘奇怪问题...
  7. ubuntu下搭建android开发环境(转载)
  8. redhat linux yum仓库,关于RHEL6发行版yum仓库的配置
  9. hive+mysql+速度_半小时搞定Hadoop+Mysql+Hive+Python
  10. linux的用户及权限管理,Linux 用户及权限管理.doc
  11. 夯实Java基础(十七)——注解(Annotation)
  12. clojure 使用Lazy-seq创建斐波那契数列
  13. xaml mvvm(1)之结构
  14. Jira迁移及内存调整
  15. 地球重力场模型EGM2008使用教程及软件
  16. 北航2021年复试机试第二题
  17. cdn连接失败是什么意思_CDN经常连接失败的原因有哪些?
  18. cpa考试科目计算机,高顿教育:CPA考试计算器如何选择
  19. 新加坡金融科技节 | 蚂蚁金服CTO程立:面向全球开放,与合作伙伴共赢
  20. 艾宾浩斯记忆曲线——定期、及时复习的重要性

热门文章

  1. c# 保存数据到txt (追加)
  2. Linux设备驱动--块设备(一)之概念和框架(转)
  3. 【杂题总汇】HDU多校赛第十场 Videos
  4. C# 创建XML文档
  5. iOS混排计算中英文个数,中午算一个字符,英文和符号算半个字符
  6. json对象与json字符串互转方法
  7. javascript 中Math函数在勾弦定理计算上的错误
  8. 1、CSS 提示工具(Tooltip),2、box-sizing: border-box;的作用,3、实例2 - 图像的透明度 - 悬停效果,4、CSS 图像拼合技术,
  9. 4.Zabbix企业级分布式监控系统 --- 快速配置和使用
  10. 17. 信号量,共享内存和消息队列