Android学习笔记(22):AdapterView与Adapter

AdapterView继承自ViewGroup,是一个抽象基类,作为容器使用,容器内是多个列表项,列表项有相似的形式,列表项的内容由Adapter提供。调用AdapterView的setAdapter(Adapter)方法设置内容。

 

AdapterView派生了三个子类:ABSListView、AbsSpinner和AdapterViewAnimator,这也是抽象类。

 

AbsListView支持的XML属性和相关方法:


Attribute Name


Related Method


Description


android:cacheColorHint


 


指示该列表总是在固定的单色、不透明的背景下绘制。这允许列表优化其绘制过程


android:choiceMode


 


设置AbsListView的选择行为:

none:不显示任何选中项

singleChoice:允许单选

multipleChoice:允许多选

multipleChoiceModal:允许多选


android:drawSelectorOnTop


setDrawSelectorOnTop(boolean)


设置为true,选中的列表项显示在上面


android:fastScrollEnabled


 


设置是否允许快速滚动,设置为true,将会显示滚动图标,允许用户拖动图标快速滚动


android:listSelector


setSelector(int)


指定被选中的列表项上绘制的Drawable


android:scrollingCache


 


当为真时,列表滚动使用绘图缓存。该选项使渲染更快,但占用更多的内存。 默认值为真


android:smoothScrollbar


setSmoothScrollbarEnabled(boolean)


为真时,列表会使用更精确的基于条目在屏幕上的可见像素高度的计算方法。 默认该属性为真,如果你的适配器需要绘制可变高的条目,他应该设为假。 当该属性为真时,你在适配器在显示变高条目时,滚动条的把手会在滚动的 过程中改变大小。当设为假时,列表只使用适配器中的条目数和屏幕上的 可见条目来决定滚动条的属性


android:stackFromBottom


 


用于 ListView 和 GridView,指示他们的内容栈从底部开始排列列表项


android:textFilterEnabled


 


设为真时,列表会过滤根据用户的要求,过滤结果集。列表的适配器必须实现了 Filterable 接口,才能使其可用


android:transcriptMode


 


设置组件的滚动方式:

disabled:默认值,关闭滚动

normal:收到数据改变通知,且最后一个列表可见时,将会滚动到底部

alwaysScroll:总会自动滚动到底部

 

Adapter接口及其实现类的使用见上一篇转载的文章。

这里在总结一下:

1.用android:entries设置内容。

2.ArrayAdapter:简单、易用。数组和List集合作为数据源。

3.SimpleAdapter:功能强大,数据源List<Map<“键”,“值”>>形式的数据。

4.SimpleCursorAdapter:与SimpleAdapter相似,用于包装Cursor提供的数据。

5.BaseAdapter:通常用于扩展,可以继承得到自定义的Adapter。

 

数据填充

1:声明AdapterView对象,根据ID利用findViewById方法找到此对象

2:声明Adapter对象,根据构造方法实例化此对象。具体如下:

(1)ArrayAdapter<数据类型> adapter = new ArrayAdapter<数据类型>(context:一般指当前Activity对象,layout:每个列表项显示的布局,data:数据源变量);

(2)SimpleAdapter adapter = new SimpleAdapter(context:一般指当前Activity对象,data:数据源变量,layout:每个列表项显示的布局,new String[]{}:数据源中的“键”,new int[]{}:显示数据源的控件ID);

(3)自定义Adapter类 adapter = new 自定义Adapter类构造方法;

3:绑定Adapter对象到Adapter上

AdapterView对象.setAdapter(Adapter对象);

 

继承BaseAdapter自定义Adapter需要重写的方法

(1) int getCount():返回的是数据源对象的个数,即列表项数

(2) Object getItem(int position):返回指定位置position上的列表

(3) long getItemId(int position):返回指定位置处的行ID

(4) View getView():返回列表项对应的视图,方法体中需要:

1.实例化视图填充器

2.用视图填充器,根据Xml文件,实例化视图

3.根据布局找到控件,并设置属性

4.返回View视图

时间: 2024-08-03 01:14:28

Android学习笔记(22):AdapterView与Adapter的相关文章

Android学习笔记45之gson解析json_Android

JSON即JavaScript Object Natation, 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. JSON对象: JSON中对象(Object)以"{"开始, 以"}"结束. 对象中的每一个item都是一个key-value对, 表现为"key:value"的形式, key-value对之间使用逗号分隔. 如:{"name":"coolxing

Android学习笔记(二)App工程文件分析_Android

App工程文件分析 关于如何创建一个最简单的Android App请参照链接: < Android学习笔记(一)环境安装及第一个hello world > http://www.jb51.net/article/52593.htm 创建完的工程文件如下图所示,本文对一些主要的文件进行分析. src文件分析 App源文件如图: 打开源文件 MainActivity.java 可看到如下代码: 源码主要功能如下: App源文件目录 package com.example.firstapp; 导入A

Android学习笔记之应用单元测试实例分析_Android

本文实例讲述了Android学习笔记之应用单元测试.分享给大家供大家参考,具体如下: 第一步:在AndroidManifest.xml中加入如下两段代码: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.pccw" android:versionCode="1" android:versionName="1.0&qu

Android学习笔记之应用单元测试实例分析

本文实例讲述了Android学习笔记之应用单元测试.分享给大家供大家参考,具体如下: 第一步:在AndroidManifest.xml中加入如下两段代码: <manifest xmlns:android="http://schemas.android.com/apk/res/android" package="com.pccw" android:versionCode="1" android:versionName="1.0&qu

Android学习笔记45之gson解析json

JSON即JavaScript Object Natation, 是一种轻量级的数据交换格式,采用完全独立于语言的文本格式,为Web应用开发提供了一种理想的数据交换格式. JSON对象: JSON中对象(Object)以"{"开始, 以"}"结束. 对象中的每一个item都是一个key-value对, 表现为"key:value"的形式, key-value对之间使用逗号分隔. 如:{"name":"coolxing

Android高级控件----AdapterView与Adapter

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://cinderella7.blog.51cto.com/7607653/1281696         在J2EE中提供过一种非常好的框架--MVC框架,实现原理:数据模型M(Model)存放数据,利用控制器C(Controller)将数据显示在视图V(View)上.在Android中有这样一种高级控件,他的实现过程就类似于MVC框架.之所以称它高级,是因为他的使用不像其他控件一样

Android学习笔记(23):列表项的容器—AdapterView的子类们

AdapterView的子类的子类ListView.GridView.Spinner.Gallery.AdapterViewFlipper和StackView都是作为容器使用,Adapter负责提供各个列表项的内容.     1.列表视图ListView和ListActivity: 以垂直列表的形式显示列表项.   生成列表视图有如下两种方法: (1).直接使用ListView (2).让Activity继承ListActivity ListView支持的XML属性和相关方法: Attribut

Android学习笔记(四)

1. 什么是Spinner? Spinner是一个在手机上显示的下拉菜单 2. 如何声明一个Spinner?        静态布局: 1).在布局文件中使用: ? 1 2 3 <Spinner android:id="@+id/spinnerId"   android:layout_width="match_parent"   android:layout_height="wrap_content"/>              

Android学习笔记——保存数据到SQL数据库中(Saving Data in SQL Databases)

知识点: 1.使用SQL Helper创建数据库            2.数据的增删查改(PRDU:Put.Read.Delete.Update) 背景知识:                  上篇文章学习了保存文件,今天学习的是保存数据到SQL数据库中.相信大家对数据库都不陌生.对于                             大量重复的,有特定结构的             数据的保存,用 SQL数据库 来保存是最理想不过了.             下面将用一个关于联系人的数