- 浏览: 433652 次
- 性别:
- 来自: 苏州
文章分类
最新评论
-
yehuiyan8002:
支持中文查询
快熟查找联系人 -
lehehe:
现成的接口,免费试用,http://www.haoservic ...
天气Widget -
D.Z:
android:focusable="false&q ...
CheckBox在ListView 而导致其OnItemClickListener不会被触发 -
freecode:
碰到该问题,CheckBox的android:focusabl ...
CheckBox在ListView 而导致其OnItemClickListener不会被触发 -
echohfut:
哥们,新博客是不是在墙外啊?不能访问。还有你怎么进行博客迁移的 ...
博客 迁移
AdapterView: ListView GridView Gallery Spinner
Adapter: SimpleAdapter SimpleCursorAdapter ArrayAdapter
[功能]
* AdapterView: 由界面决定用哪一种
* Adapter : 由数据形式决定用哪一种
AdapterView 没什么可说的 界面是人各有志 看自己的需要吧 所以今天主要介绍一下 Adapter 的使用
[前提]
因为与界面无关 所以为方便 界面统一使用 ListView 且:
ListView lv = (ListView) findViewById(R.id.list);
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <ListView android:id="@+id/list" android:layout_width="fill_parent" android:layout_height="wrap_content" /> </LinearLayout>
* 使用所有Adapter
lv.setAdapter(adapter);
以下逐一举例:
[SimpleAdapter ]
* source code:
public SimpleAdapter(Context context, List<? extends Map<String, ?>> data, int resource, String[] from, int[] to)
* sample
public final static String COLUMN_1 = "name"; public final static String COLUMN_2 = "phone"; List<Map<String,String>> display; String[] from = {COLUMN_1,COLUMN_2}; int[] to = {android.R.id.text1,android.R.id.text2}; SimpleAdapter adapter = new SimpleAdapter(this, display,android.R.layout.simple_list_item_2, from,to);
* 补充:
1. 数据源 display
1. 定义: List<Map<String,String>> display; 2. 初始化: display = new ArrayList<Map<String,String>>(); 3. 使用: display = addValue(); public List<Map<String,String>> addValue(){ List<Map<String,String>> value = new ArrayList<Map<String,String>>(); Map<String,String> item1 = new HashMap<String,String>(); item1.put(COLUMN_1, "griffin"); item1.put(COLUMN_2, "132123"); value.add(item1); Map<String,String> item2 = new HashMap<String,String>(); item2.put(COLUMN_1, "eoe.android"); item2.put(COLUMN_2, "132"); value.add(item2); Map<String,String> item3 = new HashMap<String,String>(); item3.put(COLUMN_1, "gryphone"); item3.put(COLUMN_2, "132342"); value.add(item3); return value; }
[SimpleCursorAdapter]
* source code
public SimpleCursorAdapter(Context context, int layout, Cursor c, String[] from, int[] to)
* sample
Cursor c = getContentResolver().query(People.CONTENT_URI, null, null, null, null); String[] from ={People.NAME}; int[] to = {android.R.id.text1}; SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, android.R.layout.simple_list_item_1,c, from,to);
[ArrayAdapter]
* source code
public ArrayAdapter(Context context, int resource, int textViewResourceId, T[] objects)
* sample
String[] value = { "JAN","FEB","MAR","APR", "MAY","JUN","JUL","AUG","SEP","OCT","NOV","DEC " }; ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,android.R.layout.simple_list_item_1,value)
done!
- SimpleAdapterUsage.rar (23 KB)
- 下载次数: 228
- SimpleCursorAdapterUsage.rar (22.5 KB)
- 下载次数: 276
- ArrayAdapterUsage.rar (21.6 KB)
- 下载次数: 177
评论
6 楼
gryphone
2010-05-14
carywei 写道
gryphone 写道
yanglinglong1 写道
使用了 SimpleAdapter的时候,如何来判断响应呢??比如用ArrayAdapter的时候,再响应时间中,可以用下面这种方式
public void onItemClick(AdapterView<?> prant, View view, int position,
long id) {
prant.getItemAtPosition(position).toString().equals("比较内容");
}
用SimpleAdapter就不可以了,你们再用SimpleAdapter的时候是如何来响应事件的呢
public void onItemClick(AdapterView<?> prant, View view, int position,
long id) {
prant.getItemAtPosition(position).toString().equals("比较内容");
}
用SimpleAdapter就不可以了,你们再用SimpleAdapter的时候是如何来响应事件的呢
事实上 各种Adapter 只是负责绑定数据工作 至于你说的监听相应 不应交给Adapter负责 而应该有具体AdapterView来完成 即:ListView Gallery GridView
你能在说明白怎样得到每item中的子view吗,比如子view中有一个图片,我怎样利用传过来的view
在单击的时候改变呢
问的好 看这篇博客:
http://griffinshi.iteye.com/blog/605335#comments
5 楼
carywei
2010-05-13
gryphone 写道
yanglinglong1 写道
使用了 SimpleAdapter的时候,如何来判断响应呢??比如用ArrayAdapter的时候,再响应时间中,可以用下面这种方式
public void onItemClick(AdapterView<?> prant, View view, int position,
long id) {
prant.getItemAtPosition(position).toString().equals("比较内容");
}
用SimpleAdapter就不可以了,你们再用SimpleAdapter的时候是如何来响应事件的呢
public void onItemClick(AdapterView<?> prant, View view, int position,
long id) {
prant.getItemAtPosition(position).toString().equals("比较内容");
}
用SimpleAdapter就不可以了,你们再用SimpleAdapter的时候是如何来响应事件的呢
事实上 各种Adapter 只是负责绑定数据工作 至于你说的监听相应 不应交给Adapter负责 而应该有具体AdapterView来完成 即:ListView Gallery GridView
你能在说明白怎样得到每item中的子view吗,比如子view中有一个图片,我怎样利用传过来的view
在单击的时候改变呢
4 楼
gryphone
2010-04-28
yanglinglong1 写道
使用了 SimpleAdapter的时候,如何来判断响应呢??比如用ArrayAdapter的时候,再响应时间中,可以用下面这种方式
public void onItemClick(AdapterView<?> prant, View view, int position,
long id) {
prant.getItemAtPosition(position).toString().equals("比较内容");
}
用SimpleAdapter就不可以了,你们再用SimpleAdapter的时候是如何来响应事件的呢
public void onItemClick(AdapterView<?> prant, View view, int position,
long id) {
prant.getItemAtPosition(position).toString().equals("比较内容");
}
用SimpleAdapter就不可以了,你们再用SimpleAdapter的时候是如何来响应事件的呢
事实上 各种Adapter 只是负责绑定数据工作 至于你说的监听相应 不应交给Adapter负责 而应该有具体AdapterView来完成 即:ListView Gallery GridView
3 楼
yanglinglong1
2010-04-28
使用了 SimpleAdapter的时候,如何来判断响应呢??比如用ArrayAdapter的时候,再响应时间中,可以用下面这种方式
public void onItemClick(AdapterView<?> prant, View view, int position,
long id) {
prant.getItemAtPosition(position).toString().equals("比较内容");
}
用SimpleAdapter就不可以了,你们再用SimpleAdapter的时候是如何来响应事件的呢
public void onItemClick(AdapterView<?> prant, View view, int position,
long id) {
prant.getItemAtPosition(position).toString().equals("比较内容");
}
用SimpleAdapter就不可以了,你们再用SimpleAdapter的时候是如何来响应事件的呢
2 楼
gryphone
2010-02-10
wafj1984 写道
应该说出simpleAdapter,arrayAdapter,CursorAdapter的应用时区别吧!!!和优化问题
所有3者压根就没区别 只是因为数据源的不同的缘故 比如:
1. String[]: ArrayAdapter
2. List<Map<String,?>>: SimpleAdapter
3. 数据库Cursor: SimpleCursorAdapter
至于优化 不懂你的意思 请细说~~~
1 楼
wafj1984
2010-02-10
应该说出simpleAdapter,arrayAdapter,CursorAdapter的应用时区别吧!!!和优化问题
发表评论
-
滑动抽屉 另一种解决办法
2010-07-09 17:43 0滑动抽屉 -
Spinner 定制化 增强版
2010-07-09 14:34 2609Spinner 作为下拉选 ... -
ListView 内容之分批显示
2010-06-25 20:38 5925ListView 内容循环显示 大家试想 假如 ... -
MediaScanner 研究
2010-06-23 15:21 3170MediaScanner 之所以拿MediaSc ... -
CheckBox在ListView 而导致其OnItemClickListener不会被触发
2010-06-22 20:55 19015CheckBox在ListView 而导致其OnItemCli ... -
获取Launcher 启动列表
2010-06-22 10:09 3138获取Launcher 启动列表 即 列出所有Launc ... -
PreferenceActivity 全接触
2010-06-19 12:53 9440PreferenceActivity 为了引入 ... -
android src 下载 编译 安装 全接触
2010-06-12 14:44 0android src - download install ... -
Intent.createChooser() 妙用
2010-06-12 11:14 5955Intent.createChooser(ntent targ ... -
SMS管理:收信箱 发信息 编写新信息
2010-06-07 08:14 14445SMS管理 [功能] 1. 收信箱:显示 ... -
求 android 手机 帮忙测试sms服务系统 谢谢
2010-06-05 08:25 1452Hi guys, 最近一段时间没有更新blog 因为一 ... -
流媒体 播放 理论篇
2010-05-28 14:42 2224流媒体播放 之所以为理论篇 因为该篇仅实现了播放功能 ... -
NDK 搭建与HelloWorld
2010-05-19 09:48 3225NDK [前提] 1. Cygwin 用于安装 ... -
自定义字体
2010-05-15 10:49 1221自定义字体: []代码 步骤] 1 ... -
模糊查找 再深入
2010-05-15 09:41 3158模糊查找 再深入 应某位大哥要求 再次对 SQLite ... -
快捷方式Bar + ViewGroup - 自定义
2010-05-09 09:20 2470TabActivity - 自定义 其实 这篇感觉极鸡 ... -
View 拖动&插入 研究
2010-05-09 07:14 3985View 拖动&插入 即: ... -
带图标 快捷键 Menu - 终极版
2010-05-04 20:23 1837Menu 改头换面 扩展如下: 1. 图标化文字 2 ... -
*.gif 解码 - 实践
2010-05-02 18:58 1737*.gif decode 前面已经说过 今天不打算再说了 ... -
*.gif 解码 - 理论
2010-05-01 21:11 1522我们知道Android 默认是不支持*.gif 的 但是 ...
相关推荐
本篇将详细讲解ListView与ArrayAdapter、BaseAdapter、SimpleAdapter以及SimpleCursorAdapter的配合使用。 1. **ArrayAdapter** ArrayAdapter是最基础的适配器,它将Java对象数组或ArrayList与ListView进行关联。...
讲述四种适配器:ArrayAdapter SimpleAdapter SimpleCursorAdapter 自定义Adapter
本篇将详细介绍ListView与三种Adapter(ArrayAdapter、SimpleCursorAdapter、SimpleAdapter)的使用方法,并提供实例说明。 首先,ArrayAdapter是最基础的适配器,用于将数组中的数据绑定到ListView。它适用于简单...
在Android中,有多种预定义的Adapter类供开发者选择,包括BaseAdapter、SimpleAdapter、ArrayAdapter和SimpleCursorAdapter等。BaseAdapter是一个抽象类,提供了最基本的框架,开发者可以根据需求重写必要的方法以...
SimpleAdapter适用于将Map数据集映射到列表项,而CursorAdapter和SimpleCursorAdapter则用于绑定SQLite数据库查询结果到ListView。 当需要自定义列表项的布局时,可以继承BaseAdapter并重写其方法,如`getView()`,...
- 在Android中,Adapter通常实现了一个或多个特定接口,例如BaseAdapter、SimpleAdapter、ArrayAdapter和SimpleCursorAdapter等。这些Adapter提供了不同的功能和灵活性,以适应不同场景的需求。 2. **Adapter的...
无论是ArrayAdapter的简单应用,还是SimpleAdapter和SimpleCursorAdapter的灵活性,都是开发者在构建列表型界面时的重要工具。在实际项目中,根据具体需求选择合适的Adapter类型,或创建自定义Adapter,都是实现高效...
Adapter 的种类有很多,常用的有 BaseAdapter,SimpleAdapter,ArrayAdapter,SimpleCursorAdapter 等。每种 Adapter 都有其特点和应用场景。 BaseAdapter 是一个抽象类,继承它需要实现较多的方法,所以也就具有较...
在这个系统中,我们通常会遇到几种不同类型的Adapter,包括BaseAdapter、SimpleAdapter、ArrayAdapter以及SimpleCursorAdapter。下面我们将深入探讨这些Adapter的特性和用法。 首先,BaseAdapter是一个抽象类,它是...
本篇将详细讲解如何使用三种不同的Adapter来构建ListView,包括ArrayAdapter、SimpleAdapter和CursorAdapter。 首先,ArrayAdapter是最基础的Adapter,适用于简单的数据结构,如数组或ArrayList。使用ArrayAdapter...
ArrayAdapter<String> adapter = new ArrayAdapter(this, android.R.layout.simple_expandable_list_item_1, strs); // 设置 ListView 的适配器 setListAdapter(adapter); } } ``` 在这个例子中,`...
2. **ArrayAdapter**:ArrayAdapter是最简单的Adapter实现,它支持泛型,可以直接绑定到一个数组或列表上,主要用于显示单一类型的数据,例如一行文字。ArrayAdapter自动处理数据到TextView的转换,非常适合简单的...
适配器也不仅限于ArrayAdapter,还可以是SimpleAdapter、SimpleCursorAdapter等。 当需要在界面上展示更加丰富的数据时,比如同时显示图片和文字,可以使用SimpleAdapter。SimpleAdapter相比ArrayAdapter提供了更多...
1. ArrayAdapter:这是最基础的Adapter实现,适用于由数组支持的ListView。它可以管理任意类型的对象数组,并默认假设每个对象可以转化为一个TextView的文本。如果你想自定义布局,可以重写`getView()`方法。 2. ...
- Android提供了几种预定义的适配器,如ArrayAdapter、SimpleAdapter和SimpleCursorAdapter。 - ArrayAdapter是最基础的适配器,适用于展示单一类型的文本数据。 - SimpleAdapter具有更好的扩展性,允许自定义...
1. ArrayAdapter:是最简单的适配器, 只能展示一行字。它通常用于展示字符串数组。 2. SimpleAdapter:具有最好的扩充性,可以自定义出各种效果。它可以用于展示复杂的数据结构,如 HashMap 等。 3. ...
- **类型**:在Android中,有多种预定义的Adapter实现,包括BaseAdapter、SimpleAdapter、ArrayAdapter和SimpleCursorAdapter等。 - **BaseAdapter**:这是一个抽象类,提供了基本的框架,需要开发者实现一些核心...