版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Android程序设计基础第7章:列表与适配器本章内容第1节Android列表用途第2节用ArrayAdapter显示数据第3节用SimpleAdapter显示数据第4节
列表项布局设计第5节
下拉视图Spinner本章目标熟悉Android列表的特点与用途。熟练掌握使用ArrayAdapter显示列表数据。掌握掌握使用SimpleAdapter显示列表数据。掌握列表项的布局设计手段。掌握下拉视图Spinner的用法。第1节Android列表用途知识点预览#知识点重点难点应用说明1列表控件的作用介绍列表控件的作用。2ListView控件√√介绍ListView控件的特征与用途。3Spinner控件√√介绍Spinner控件的特征与用途。4GridView控件√介绍GridView控件的特征与用途。5ExpandableListView控件√√√介绍ExpandableListView控件的特征与用途。列表控件是界面设计中一种常用的控件主要用于展现一系列数据项供用户选择或浏览,比如:收件箱中的邮件标题列表通讯录中的联系人列表注册用户时的城市选择列表Android系统中提供了多种形式的列表展现单选列表多选列表可展开列表列表控件的用途ListView控件用于以列表形式显示数据ListView采用MVC模式将前端显示和后端数据进行了分离ListView装载数据时并不使用ListView本身的方法通过指定一个Adapter对象给ListView提供数据ListView显示效果如下ListView控件Spinner控件用于显示一个下拉列表Spinner采用MVC模式将前端显示和后端数据进行了分离Spinner装载数据时并不使用Spinner本身的方法通过指定一个Adapter对象给Spinner提供数据Spinner显示效果如下Spinner控件GridView控件用于显示一个表格GridView采用MVC模式将前端显示和后端数据进行了分离GridView装载数据时并不使用GridView本身的方法通过指定一个Adapter对象给GridView提供数据GridView显示效果如下GridView控件ExpandableListView控件是一个可展开的ListView控件ExpandableListView是ListView的直接子类ExpandableListView具备了ListView的基本特性展开特性类似于树状结构或分组的效果ExpandableListView显示效果如下ExpandableListView控件第2节用ArrayAdapter显示数据知识点预览#知识点重点难点应用说明1Android列表设计思想√
介绍Android列表的MVC设计思想。2适配器用途√√介绍适配器在列表控件中的作用。3用ArrayAdapter显示数据√√√介绍使用ArrayAdapter显示数据。4列表事件处理√√介绍如何处理列表事件。Android列表采用了MVC的设计模式用户前端界面与后端的数据分离MVC设计模式的思想如下视图模块负责显示用户界面和响应用户动作模型模块负责管理维护数据控制器负责执行业务逻辑Android列表设计思想View(视图)Model(模型)Controller(控制器)查询数据通知视图选择视图执行动作维护数据适配器在列表控件中的用途适配器就是列表控件的模型为列表控件提供数据为列表项提供了显示视图适配器的基类是android.widget.Adapter定义了数据提供者的标准提供了很多子类实现了多种数据的提供手段android.widget.ArrayAdapterandroid.widget.SimpleAdapter适配器用途ArrayAdapter通过数组为列表控件提供数据构造ArrayAdapter的对象第二个参数表示为列表控件提供列表项的显示视图第三个参数即为适配器所需要的数组数据使用ArrayAdapter对象作为列表控件的数据源用ArrayAdapter显示数据String[]data=getResources().getStringArray(R.array.data);ArrayAdapter<String>adapter=newArrayAdapter<String>(MainActivity.this,android.R.layout.simple_list_item_1,data);ListViewlv=(ListView)findViewById(R.id.listview);lv.setAdapter(adapter);与列表相关的主要事件有两个ItemSelected(列表项被选中时发生)通过列表控件的setOnItemSelectedListener()实现监听ItemClick(单击列表项时发生)通过列表控件的setOnItemClickListener()实现监听ItemLongClick(长按列表项时发生)通过列表控件的setOnItemLongClickListener()实现监听列表事件处理ListView示例演示演示ListView示例第3节用SimpleAdapter显示数据知识点预览#知识点重点难点应用说明1SimpleAdapter概述√√介绍SimpleAdapter的基本构成。2列表数据结构√介绍列表项复杂数据的构建与存储。3显示复杂列表数据√介绍复杂数据对应的显示视图设计。
SimpleAdapter可以用于显示复杂数据SimpleAdapter可以在列表的一项中提供和显示多个数据SimpleAdapter需要自定义数据结构和显示视图布局SimpleAdapter的构造需要5个参数context:
为使用SimpleAdapter的上下文data:为用于显示的具体数据这是一个map对象的list,list中的每一项是一个mapmap中的每一项对应着列表项显示视图中的一个内容resource:用于显示具体数据的布局资源from:data数据中map所包含的每一个项中key的名字的数组to:map中的每一个key的内容所对应的显示视图的资源id的数组SimpleAdapter概述使用SimpleAdapter显示复杂数据需要设计好数据内容不过视图如何复杂,列表的每一项内容由多个数据字段构成在提供数据的时候,需要为每一个数据字段设计一个名字字段名字和具体数据构成键值对,存放在map对象中列表数据结构Stringfrom[]=newString[]{"itemlabel","itemtext"};LinkedList<HashMap<String,Object>>datas=newLinkedList<HashMap<String,Object>>();for(inti=0;i<itemlabels.length;i++){HashMap<String,Object>map=newHashMap<String,Object>();map.put(from[0],itemlabels[i]);map.put(from[1],itemtexts[i]);
datas.add(map);}显示复杂列表首先需要为复杂数据结构定义用于显示的列表项布局显示复杂列表<LinearLayoutandroid:layout_width="match_parent"android:layout_height="match_parent"android:orientation="horizontal"><ImageViewandroid:id="@+id/itemimage"android:layout_width="wrap_content"android:layout_height="wrap_content"android:src="@drawable/sample_0"/><TextViewandroid:id="@+id/itemtext"android:layout_width="match_parent"android:layout_height="match_parent"android:textSize="16sp"/></LinearLayout>显示复杂列表然后在ListView中使用SimpleAdapter显示复杂列表2intto[]=newint[]{R.id.itemimage,R.id.itemtext};SimpleAdapteradapter=newSimpleAdapter(MainActivity.this,datas,R.layout.simple_item,from,to);ListViewlv=(ListView)findViewById(R.id.listview);lv.setAdapter(adapter);SimpleAdapter演示演示使用SimpleAdapter第4节列表项布局设计知识点预览#知识点重点难点应用说明1系统内置的列表项
介绍常见的系统内置列表项布局。2列表项常见规划设计介绍常见的列表项设计方案。3创建自定义适配器√√√介绍创建自定义适配器的过程。4实现动态显示数据√√介绍使用自定义适配器实现动态改变数据。Android为列表控件提了一些基本的列表项布局布局基本都在android.R.layout中android.R.layout.simple_list_item_1android.R.layout.simple_list_item_2android.R.layout.simple_list_item_checkedandroid.R.layout.simple_list_item_multiple_choiceandroid.R.layout.simple_list_item_single_choice系统内置列表项列表项的常见规划设计在实际应用中,列表项显示设计往往是多种多样的一些常见的设计效果如下:列表项常见规划设计创建自定义适配器编写自定义适配器,选择继承android.widget.BaseAdapter通常为适配器关联一个list,用于数据的提供覆盖publicintgetCount()方法,用于告知列表有多少项数据覆盖getView()方法,用于向列表提供列表项的显示视图列表项视图通常有两种方法通过布局资源定义,然后采用动态加载的方法使用通过程序实现布局创建自定义适配器publicintgetCount(){returndataList.size();}ViewgetView(intposition,ViewconvertView,ViewGroupparent)创建自定义适配器getView()方法覆盖示例创建自定义适配器2publicViewgetView(intposition,ViewconvertView,ViewGroupparent){Stringns=Context.LAYOUT_INFLATER_SERVICE;LayoutInflaterli=(LayoutInflater)context.getSystemService(ns);
Viewlayout=li.inflate(R.layout.simple_item,null);TextViewtitleView=(TextView)layout.findViewById(R.id.title);TextViewbodyView=(TextView)layout.findViewById(R.id.body);Mailm=dataList.get(position);titleView.setText(m.getTitle());bodyView.setText(m.getMessage());
returnlayout;}使用自定义适配器实现动态显示数据所谓动态显示就是在运行过程中通过程序增删改列表项在自定义适配器中添加增删改数据的方法在改变数据完成后一定要通知视图实现动态显示数据publicvoidaddMail(Mailm){dataList.add(m);
notifyDataSetChanged();}动态增加列表数据演示演示动态增加列表数据示例第5节下拉视图Spinner知识点预览#知识点重点难点应用说明1创建Spinner√
介绍创建Spinner对象的过程。2利用Spinner显示数据√介绍如何使用Spinner显示数据。3实现带图片的Spinner√介绍实现带图片的Spinner项的过程。创建SpinnerSpinner相当于Android系统中的combobox(下拉选择框)Spinner同样使用Adapter提供数据显示在布局中使用<Spinner>标签布局在Activity中获取Spinner对象创建Spinner<Spinnerandroid:id="@+id/spinner"android:layout_width="match_parent"android:layout_height="wrap_content"/>Spinnerspinner=(Spinner)findViewById(R.id.spinner);利用Spinner显示数据在资源中准备要显示的数据数组通过ArrayAdapter给Spinner提供数据显示利用Spinner显示数据<string-arrayname="moviearray"><item>狮子王</item><item>丛林大冒险</item><item>米老鼠和唐老鸭</item><item>黑猫警长</item></string-array>String[]data=getResources().getStringArray(R.array.moviearray);ArrayAdapter<String>adapter=newArrayAdapter<String>(MainActivity.this,android.R.layout.simple_spinner_item,data);s.setAdapter(adapter);简单Spinner示例演示演示简单的Spinner示例实现带图片的Spinner需要自定义Spinner的列表项视图使用自定义列表项视图的办法有多种通过自定义适配器来使用通过继承ArrayAdapter,覆盖getDropDownView()方法实现带图片的Spinner实现带图片的Spinner通过覆盖getDropDownView()方法实现自定义视图实现带图片的Spinner2ArrayAdapter<CharSequence>adapter=newArrayAdapter<Cha
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026顺德法院面试题及答案
- 2026司法警察面试题及答案
- 2026思考人才培养面试题及答案
- 船艇安全用电课件
- 踩踏安全教育图案课件
- 2026四大精算面试题及答案
- 创伤止血的课件
- 参赛照片作品课件
- 彩色中国朗读指导课件
- 彩色影子美术课件
- 2026年口腔急诊考试模拟题及答案详解
- 2026秋新教材统编版九年级上册历史全册教案
- 2026秋部编版六年级语文上册第7单元第20课《文言文二则 曹冲称象》教学课件
- 2026年省级检察院遴选公务员面试真题(附答案)
- 2026年井控考试题库及答案
- 电梯工程安装及后期保养合同三篇
- 月子中心母婴营养餐专项承包协议
- 2026家族企业代际传承与治理结构优化咨询需求分析报告
- 工业网络和现场总线技术基础与案例
- 2026年生物技术农业创新报告
- 2025年浙银金租笔试真题及答案
评论
0/150
提交评论