`
huakewoniu
  • 浏览: 47651 次
  • 性别: Icon_minigender_1
  • 来自: 西安
社区版块
存档分类
最新评论

Cursor与Adapter

阅读更多

来自: http://hi.baidu.com/lfcaolibin/blog/item/2ce306ec77cebd4478f055b4.html

Cursor与Adapter结合使用

查询数据库均会把查询的结果包装在一个Cursor的子类对象中返回。Cursor就像是位于结果集之上的一个游标,可以对结果集进行向前、向后或 随机的访问。而Cursor本身是一个接口类,提供了对结果集访问的一些抽象方法,根据功能的不同在其子类有着不同的实现。要控制查询时返回的 Cursor类型,可以自定义一个继承自CursorFactory类通过实现其newCursor()方法来返回需要的Cursor子类对象,但在 CursorFactory传入null的默认情况下,查询操作会返回一个指向第一行数据之前的SQLiteCursor的对象。

对Cursor中常用的一些方法的介绍。

 

有关Cursor的常用方法

Cursor-Class

在实际的应用编写过程中,更多是通过适配器(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.

Adapter-View

已经介绍到了几种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),强行设置的话会抛出异常。最后程序运行的结果,如下图所示:

Spinner

为了您的安全,请只打开来源可靠的网址

打开网站    取消

来自: http://hi.baidu.com/lfcaolibin/blog/item/2ce306ec77cebd4478f055b4.html
分享到:
评论

相关推荐

    ListVIew存储和表现sqlite数据

    综上所述,"ListView存储和表现sqlite数据"涉及了SQLite数据库的使用、数据查询与操作,以及将这些数据通过Cursor和Adapter绑定到ListView的过程。在实际开发中,还需要考虑性能优化和用户体验,如使用Loader、...

    Android平台开发技巧大全.pdf

    4. **Cursor与Adapter**:Cursor是数据库查询结果的抽象,它提供了访问数据库行数据的方法。为了将数据库数据展示在UI上,通常会使用Adapter,比如SimpleCursorAdapter,将Cursor中的数据绑定到ListView或其他View...

    Android listview与adapter用法

    - 绑定Adapter到ListView:使用ListView的`setAdapter()`方法将Adapter与ListView关联。 5. **自定义Adapter** - 当系统提供的Adapter无法满足需求时,可以继承BaseAdapter并覆盖其方法,如`getView()`,来实现...

    Android 的 SQLite Database

    6. Cursor与Adapter:查询数据后,返回的结果通常是一个Cursor对象,它可以与ListView或其他视图组件结合,通过CursorAdapter或SimpleCursorAdapter将数据展示出来。 7. 性能优化:为了提高性能,可以使用SQLite的...

    android之各种Adapter加载数据

    在Android开发中,Adapter是一个非常重要的组件,它起到了数据源与UI展示之间的桥梁作用。本文将深入探讨Android的Adapter机制,以及如何使用各种Adapter来加载数据。 首先,我们需要理解Adapter的基本概念。...

    使用三种Adapter构建ListView

    它通过适配器(Adapter)将数据源与视图进行绑定,实现数据的显示。本篇将详细讲解如何使用三种不同的Adapter来构建ListView,包括ArrayAdapter、SimpleAdapter和CursorAdapter。 首先,ArrayAdapter是最基础的...

    adapter.doc

    SimpleCursorAdapter会自动将Cursor中的列值与指定的视图ID匹配,非常适合展示数据库查询结果。如果需要更复杂的UI效果,可以通过重写父类方法来自定义行为。 总结来说,Android中的Adapter机制为开发者提供了强大...

    Adapter继承关系结构图

    在Android开发中,`Adapter`是一种非常重要的组件,主要用于将数据源中的数据与视图进行绑定,以实现列表或其他类型的视图控件的数据展示。对于Android开发者而言,理解`Adapter`的继承结构及其与相关接口的关系至关...

    Android之Adapter用法总结

    #### 一、概念与作用 **Adapter** 是 Android 开发中连接后端数据和前端视图的一个关键组件。它作为数据和用户界面(UI)之间的桥梁,在Android开发中扮演着极其重要的角色。尤其是在常见的视图组件如 `ListView`, ...

    Adapter放到ListView的三种方式

    Adapter是连接ListView与数据源的关键,它负责将数据转化为ListView可以显示的视图。本篇文章将详细探讨将Adapter放入ListView的三种常见方法,以帮助开发者更好地理解和应用。 ### 1. 直接继承BaseAdapter **描述...

    Android Adapter的使用

    它将Cursor对象与ListView或其他视图关联,当Cursor中的数据改变时,视图会自动更新。 4. **RecyclerView.Adapter**:在Android Lollipop及以上版本中引入,用于替换ListView。RecyclerView更高效,支持更复杂的...

    simple-database4-cursor-adapter:通过 SimpleCursorAdapter 在 ListView 上显示 SQLite 记录

    R.layout.list_item, // 布局资源ID,通常包含一个TextView或多个与fromColumns对应的视图 cursor, fromColumns, toViews, 0 // 没有附加标志 ); ListView listView = findViewById(R.id.list_view); ...

    android Adapter教程

    - **SimpleCursorAdapter**:专门为与 SQLite 数据库交互设计,能够直接从 Cursor 对象读取数据并映射到 ListView 的 UI 组件上。这使得开发者能够轻松地将数据库内容以列表形式展示,而无需手动处理数据的读取和...

    android adapter 开发总结

    ListView作为视图容器,Adapter作为数据与视图之间的桥梁,而数据源则包含要展示的实际内容。 1. **ArrayAdapter**:这是最基本的Adapter,适用于简单的数据展示,如单一文本行。ArrayAdapter的构造函数接受三个...

    Android App调试内存泄露之Cursor.zip

    5. **及时更新Adapter**:在ListView/RecyclerView与CursorAdapter配合时,当Cursor数据发生变化时,通过`swapCursor()`方法更新Adapter,而不是创建新的Adapter实例,确保旧的Cursor能够被正确关闭。 6. **避免...

    Android_Adapter 讲解

    在Android开发中,Adapter是一个至关重要的组件,它作为数据与视图之间沟通的桥梁,使得数据能够被适配并展示在各种ViewGroup中,如ListView、GridView或Spinner等。Adapter的使用极大地简化了数据绑定的过程,让...

    android 使用之adapter大全

    在Android开发中,Adapter是一个非常重要的组件,它起到了数据与视图之间的桥梁作用。这篇文章将深入探讨Android中的三种主要Adapter:BaseAdapter、SimpleAdapter和CursorAdapter的使用方法和应用场景。 首先,...

    android(Adapter)适配器用法总结

    SimpleCursorAdapter 可以适用于简单的纯文字型 ListView,它需要 Cursor 的字段和 UI 的 id 对应起来。这使得 SimpleCursorAdapter 可以快速地将数据库的数据展示出来。 在实际应用中,我们可以根据不同的需求选择...

    SimpleCursorAdapter 数据库查询显示

    当Cursor移动到新的行时,Adapter会自动更新与`to`数组对应视图的内容,从而实现在ListView中显示数据库查询结果。 5. **绑定数据到ListView** 将SimpleCursorAdapter设置为ListView的Adapter,可以通过`ListView....

Global site tag (gtag.js) - Google Analytics