- 浏览: 47651 次
- 性别:
- 来自: 西安
最新评论
来自: http://hi.baidu.com/lfcaolibin/blog/item/2ce306ec77cebd4478f055b4.html
Cursor与Adapter结合使用
查询数据库均会把查询的结果包装在一个Cursor的子类对象中返回。Cursor就像是位于结果集之上的一个游标,可以对结果集进行向前、向后或 随机的访问。而Cursor本身是一个接口类,提供了对结果集访问的一些抽象方法,根据功能的不同在其子类有着不同的实现。要控制查询时返回的 Cursor类型,可以自定义一个继承自CursorFactory类通过实现其newCursor()方法来返回需要的Cursor子类对象,但在 CursorFactory传入null的默认情况下,查询操作会返回一个指向第一行数据之前的SQLiteCursor的对象。
对Cursor中常用的一些方法的介绍。
有关Cursor的常用方法
在实际的应用编写过程中,更多是通过适配器(Adapter)来将Cursor与适配器控件联系起来。Android为Cursor提供了一个抽象 类CursorAdapter,可以方便实现Cursor与适配器的连接。只需要创建一个继承自CursorAdapter的类,实现其 bindView()和newView()两个抽象方法,或根据需要重新实现其他方法就可以用此类来构造一个可适配Cursor的适配器。下面是关于 bindView()和newView()两个抽象方法需要实现的内容。
-
public void bindView(View view, Context context, Cursor cursor)
重用一个已有的view,使其显示当前cursor所指向的数据。 -
public View newView(Context context, Cursor cursor, ViewGroup parent)
为cursor所指向的数据新建一个View对象,并显示其数据。
另外还需要注意的是,传入到CursorAdapter中的Cursor结果集必须包含有列名为_id的列,否则CursorAdapter将不会起作用。
Adapter 的作用是什么,想必大家看了Android SDK中的原文就一目了然:
An Adapter object acts as a bridge between an AdapterView and the underlying data for that view. The Adapter provides access to the data items. The Adapter is also responsible for making a View for each item in the data set.
已经介绍到了几种Android已经实现好了的适配器,其中SimpleCursorAdapter就是为Cursor对象专门实现的一种方便使用的适配器类,下面是对其构造方法传入参数的介绍:
public SimpleCursorAdapter (Context contex, int layout, Cursor c, String[]from, int[] to)
- context,当前程序的上下文对象。
- layout,用来描述如何显示在适配器控件上的布局文件的R类引用。
- from,由需要显示出来的列名组成的字符串数组。
- to,由layout所指定的布局文件中子控件的id所组成的整形数组,与from相对应。
综合前面的说明,举个具体例子如下:
变量以便在程序中引用:
TextView display;
Spinner s;
…
填充Spinner控件的代码:
s = (Spinner)findViewById(R.id.spinner);
display = (TextView)findViewById(R.id.display);
SimpleCursorAdapter adapter = new SimpleCursorAdapter(this,
android.R.layout.simple_spinner_item,
c,
new String[] { MyHelper.COUNTRY},
new int[] {android.R.id.text1});
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
s.setAdapter(adapter);
s.setOnItemSelectedListener(new OnItemSelectedListener()
{
public void onItemSelected(AdapterView<?> adapter,View v,int pos, long id)
{
c.moveToPosition(pos);
display.setText(c.getString(codeIndex));
}
public void onNothingSelected(AdapterView<?> arg0) {}
});
首先通过id分别获得TextView和Spinner对象的引用,然后使用之前查询返回的Cursor和Android 自带的Spinner子控件的布局构造一个SimpleCursorAdapter,再调用setDrop-DownViewResource()方法来 设置点开Spinner后显示子控件的布局,最后设置Spinner的适配器为adapter并对其子控件被选取的事件设置一个监听器。需要注意的是 Spinner不支持设置点击事件的监听器(OnClickListener),强行设置的话会抛出异常。最后程序运行的结果,如下图所示:
发表评论
-
Android Intent and Intent Filter (转)
2011-03-10 22:47 1459Android Intent and Intent ... -
Intent详解
2011-03-03 14:18 1142在应用中,我们可以以两种形式来使用Intent: 直接I ... -
Intent间传送数据一般有两种常用方法
2011-01-24 14:50 1306Intent间传送数据一般有两种常用的办法: 1.extra ... -
android RelativeLayout 详解
2011-01-01 09:46 1580<?xml version="1.0" ... -
How to Use Android Downloads Provider
2010-12-20 21:41 1332本文转载自 http://blog.lytsing.or ... -
android 开发中的一些小知识点
2010-12-17 09:49 10001 关于onPause(): onPause ... -
content provider 深入解析
2010-12-15 22:04 1098Content providers are on ... -
Service的高级应用
2010-12-12 20:48 1356下面是android Service的高级应用的一个例子,主要 ... -
TabActivity
2010-12-12 19:09 1772下面是一个使用android tabactivity 的例子 ... -
android 测试初探(android test)
2010-12-07 15:00 8015android Testing and Instrumenta ... -
Localization of android
2010-12-05 21:51 0android 会在不同地域的不同机器上运行。为了是应用能够 ... -
android高效编程之使用本地变量
2010-12-05 14:26 976hava a look at the following co ... -
在不同的Activity中传递对象的方法
2010-12-02 10:20 2011下面我们将要实现的功 ... -
Working with Context Menus
2010-11-15 23:36 861... -
Handler的理解
2010-11-14 20:58 836A Handler allows you to sen ... -
android开发问题解决日志
2010-11-14 18:33 18801.、android中R文件消失的处理方式 ... -
android 中对SDCard 的操作
2010-11-11 14:14 1637对于像视频这样的大文件,我们可以把它存放在SDCard。 SD ... -
ViewAnimation
2010-11-05 12:46 1039view animation 的实现 Understandi ... -
android高效的编写高效代码
2010-10-17 19:13 788本文来源于: 从此学习网 原文: http://www.con ... -
scale animation
2010-10-11 23:29 1610Scale animation: You use this t ...
相关推荐
综上所述,"ListView存储和表现sqlite数据"涉及了SQLite数据库的使用、数据查询与操作,以及将这些数据通过Cursor和Adapter绑定到ListView的过程。在实际开发中,还需要考虑性能优化和用户体验,如使用Loader、...
4. **Cursor与Adapter**:Cursor是数据库查询结果的抽象,它提供了访问数据库行数据的方法。为了将数据库数据展示在UI上,通常会使用Adapter,比如SimpleCursorAdapter,将Cursor中的数据绑定到ListView或其他View...
- 绑定Adapter到ListView:使用ListView的`setAdapter()`方法将Adapter与ListView关联。 5. **自定义Adapter** - 当系统提供的Adapter无法满足需求时,可以继承BaseAdapter并覆盖其方法,如`getView()`,来实现...
6. Cursor与Adapter:查询数据后,返回的结果通常是一个Cursor对象,它可以与ListView或其他视图组件结合,通过CursorAdapter或SimpleCursorAdapter将数据展示出来。 7. 性能优化:为了提高性能,可以使用SQLite的...
在Android开发中,Adapter是一个非常重要的组件,它起到了数据源与UI展示之间的桥梁作用。本文将深入探讨Android的Adapter机制,以及如何使用各种Adapter来加载数据。 首先,我们需要理解Adapter的基本概念。...
它通过适配器(Adapter)将数据源与视图进行绑定,实现数据的显示。本篇将详细讲解如何使用三种不同的Adapter来构建ListView,包括ArrayAdapter、SimpleAdapter和CursorAdapter。 首先,ArrayAdapter是最基础的...
SimpleCursorAdapter会自动将Cursor中的列值与指定的视图ID匹配,非常适合展示数据库查询结果。如果需要更复杂的UI效果,可以通过重写父类方法来自定义行为。 总结来说,Android中的Adapter机制为开发者提供了强大...
在Android开发中,`Adapter`是一种非常重要的组件,主要用于将数据源中的数据与视图进行绑定,以实现列表或其他类型的视图控件的数据展示。对于Android开发者而言,理解`Adapter`的继承结构及其与相关接口的关系至关...
#### 一、概念与作用 **Adapter** 是 Android 开发中连接后端数据和前端视图的一个关键组件。它作为数据和用户界面(UI)之间的桥梁,在Android开发中扮演着极其重要的角色。尤其是在常见的视图组件如 `ListView`, ...
Adapter是连接ListView与数据源的关键,它负责将数据转化为ListView可以显示的视图。本篇文章将详细探讨将Adapter放入ListView的三种常见方法,以帮助开发者更好地理解和应用。 ### 1. 直接继承BaseAdapter **描述...
它将Cursor对象与ListView或其他视图关联,当Cursor中的数据改变时,视图会自动更新。 4. **RecyclerView.Adapter**:在Android Lollipop及以上版本中引入,用于替换ListView。RecyclerView更高效,支持更复杂的...
R.layout.list_item, // 布局资源ID,通常包含一个TextView或多个与fromColumns对应的视图 cursor, fromColumns, toViews, 0 // 没有附加标志 ); ListView listView = findViewById(R.id.list_view); ...
- **SimpleCursorAdapter**:专门为与 SQLite 数据库交互设计,能够直接从 Cursor 对象读取数据并映射到 ListView 的 UI 组件上。这使得开发者能够轻松地将数据库内容以列表形式展示,而无需手动处理数据的读取和...
ListView作为视图容器,Adapter作为数据与视图之间的桥梁,而数据源则包含要展示的实际内容。 1. **ArrayAdapter**:这是最基本的Adapter,适用于简单的数据展示,如单一文本行。ArrayAdapter的构造函数接受三个...
5. **及时更新Adapter**:在ListView/RecyclerView与CursorAdapter配合时,当Cursor数据发生变化时,通过`swapCursor()`方法更新Adapter,而不是创建新的Adapter实例,确保旧的Cursor能够被正确关闭。 6. **避免...
在Android开发中,Adapter是一个至关重要的组件,它作为数据与视图之间沟通的桥梁,使得数据能够被适配并展示在各种ViewGroup中,如ListView、GridView或Spinner等。Adapter的使用极大地简化了数据绑定的过程,让...
在Android开发中,Adapter是一个非常重要的组件,它起到了数据与视图之间的桥梁作用。这篇文章将深入探讨Android中的三种主要Adapter:BaseAdapter、SimpleAdapter和CursorAdapter的使用方法和应用场景。 首先,...
SimpleCursorAdapter 可以适用于简单的纯文字型 ListView,它需要 Cursor 的字段和 UI 的 id 对应起来。这使得 SimpleCursorAdapter 可以快速地将数据库的数据展示出来。 在实际应用中,我们可以根据不同的需求选择...
当Cursor移动到新的行时,Adapter会自动更新与`to`数组对应视图的内容,从而实现在ListView中显示数据库查询结果。 5. **绑定数据到ListView** 将SimpleCursorAdapter设置为ListView的Adapter,可以通过`ListView....