0 0

关于ListView和数据库配合的问题10

请教一个问题,我们都知道ListView可以通过SimpleCursorAdapter和数据库进行关联。这里可以通过2种方式:
1) 通过Content Provider

例如:
----------------------------------------------------------------------------------
  Cursor cursor = managedQuery(getIntent().getData(), PROJECTION, null, null,
                Notes.DEFAULT_SORT_ORDER);

        // Used to map notes entries from the database to views
        SimpleCursorAdapter adapter = new SimpleCursorAdapter(this, R.layout.noteslist_item, cursor,
                new String[] { Notes.TITLE }, new int[] { android.R.id.text1 });
        setListAdapter(adapter);
...............................................................

这样关联的好处,是假如数据库的内容发生变化,会自动的反映到关联的ListView上面

2)通过DBAdapter直接关联

其实这种方式就是我直接通过SQLiteOpenHelper的查询语句(rawQuery)得到一个Cursor,然后下面的步骤就和第一种方式一样了

例如:
  Cursor cursor = md.queryMessages(null, null, null, -1, -1, null);
        this.startManagingCursor(cursor);
        // An array of column names that will be added to the Map associated with each item.
        String[] from = new String[]{"_id","title","date"};
        //The views that should display column in the "from" parameter. These should all be TextViews.
       
        int[] to = {R.id.text1,R.id.text2,R.id.text3};
        // Now create an array adapter
        SimpleCursorAdapter listAdapter = new SimpleCursorAdapter(this, R.layout.messagelist, cursor, from, to);
        ViewBinder binder = new MessageViewBinder();
        listAdapter.setViewBinder(binder);
        listView.setAdapter(listAdapter);
.............................................................................................

我的问题是,假如用第2种方式,能否也实现ListView自动响应数据库内容变化,就像第一种方式的效果。
我试了一下,好像不行,大侠们能不能给点意见。

先谢了!
问题补充:
这个问题大概,我明白了。在ListView里只能直接通过Cursor的
cursor.deactivate();
cursor.requery();
来解决!
2009年7月09日 23:31

1个答案 按时间排序 按投票排序

0 0

采纳的答案

如果你是继承ListActivity的话, 然后用:
notifyDataSetChanged(); 来更新list的data.

但如果是单单Activity, 我还没找到相应方法, 只好重新设置list的adapter

2009年7月09日 23:31

相关推荐

    C#使用listView增删操作实例

    在设计用户界面时,ListView控件通常与其他控件(如TextBox、Button等)配合使用,以提供完整的数据管理功能。例如,用户可以通过TextBox输入新数据,然后点击“添加”按钮将数据添加到ListView中;也可以通过选择...

    listview 数据库

    在这个主题“ListView 数据库”中,我们将探讨如何将外部数据库的内容导入到Android应用中,并使用ListView进行展示,以及如何利用SimpleCursorAdapter将数据库数据适配到ListView上。 首先,我们需要了解Android中...

    listview综合使用示例_结合数据库操作和listitem单击长按等事件

    接下来,我们将探讨如何与数据库配合使用。在Android中,SQLite是默认的轻量级数据库,适用于存储应用的结构化数据。我们需要创建一个SQLite数据库,定义表结构,并实现数据的增删改查操作。当数据发生变化时,我们...

    QSqlQueryModel模型在QML的ListView

    总结来说,通过结合QSqlQueryModel和QML的ListView,我们可以构建一个功能丰富的数据可视化界面,实现实时的数据库操作。这种方式充分利用了Qt的跨平台特性和QML的声明式编程,使得数据库操作与UI设计融为一体,提高...

    android listview和spinner实例代码

    在Android开发中,ListView和Spinner是两种非常常用的UI组件,它们在数据展示和用户交互方面起着关键作用。本文将详细讲解如何在Android应用中实现ListView和Spinner,并结合不同的数据源进行实例操作。 首先,我们...

    查询Sqlite分页显示在ListView里

    使用RecyclerView时,配合使用LinearLayoutManager和PagedListAdapter,可以轻松实现无限滚动和更好的性能。 在实际应用中,为了提高查询效率和减少内存占用,可以考虑以下优化策略: 1. 使用`CursorLoader`替代...

    C#DataGrid和ListView案例

    而ListView则更适用于需要多视图展示和图像配合的场景,例如在资源管理器中显示文件和文件夹,或者在音乐应用中展示歌曲列表。在C#中,我们可以利用ListView的ItemCollection添加和删除项,通过HeaderCollection设置...

    ListView中使用单选和多选效果

    本篇文章将详细讲解如何在ListView中实现单选和多选效果。 首先,我们需要了解ListView的基本结构。ListView通常与Adapter结合使用,Adapter负责将数据转化为ListView可显示的View。在单选和多选场景下,我们可能...

    ListView显示数据视图

    对于数据库数据,我们通常使用CursorAdapter,因为它可以直接与SQLite数据库查询结果的Cursor对象配合工作。 1. **CursorAdapter**:CursorAdapter继承自BaseAdapter,它提供了一个将SQLite数据库查询结果转化为...

    ListView动态添加、移除item

    2. 对于大量数据,考虑使用`CursorAdapter`配合SQLite数据库,或`LoaderManager`以实现后台加载。 总结,动态添加和移除ListView的item是Android开发中常见的需求。通过理解ListView的工作原理,结合Adapter和数据...

    android BaseAdapter listView优化

    BaseAdapter则是与ListView配合使用的数据适配器,负责将数据绑定到ListView的各个视图上。本篇文章将深入探讨ListView与BaseAdapter的工作原理,并详细介绍如何进行性能优化。 首先,我们来理解一下Adapter在...

    TreeView和ListView控件联动事例

    在Windows Forms开发中,`TreeView`和`ListView`控件是两种常见的用户界面元素,用于展示层次化的数据和多列列表视图数据。本案例主要探讨如何实现这两个控件之间的联动,即当`TreeView`中的节点发生变化时,`...

    ListView分页

    在实际开发中,还可以考虑使用更高级的库,例如PagedListAdapter与Room数据库配合使用,或者使用RecyclerView搭配诸如LoadMoreWrapper之类的库来实现更高效的分页加载。这些现代方案提供了更好的性能和更丰富的功能...

    ListView&Spinner&Dialog练习

    它通常与Adapter配合使用,Adapter是连接数据源(如数组或数据库)和ListView的桥梁。在这个小练习中,你可能会看到一个自定义的Adapter,它允许开发者对ListView中的每一项进行个性化定制,比如设置不同的布局或者...

    ListView 实例

    而CursorAdapter则是为了配合SQLite数据库查询结果而设计的,它可以将数据库查询结果直接显示为ListView。 接下来,我们来看看如何创建一个基本的ListView实例。首先,需要在布局文件中添加ListView元素,并为其...

    ListView实现多选效果

    - ListView通常配合Adapter使用,Adapter负责将数据转化为ListView可显示的View。 2. **自定义Adapter** - 要实现Checkbox的多选效果,我们需要自定义一个继承自BaseAdapter的Adapter,以便为每个ListView项创建...

    android ListView 使用 示例

    - 若数据源较大,考虑使用CursorAdapter与SQLite数据库配合,实现分页加载。 通过以上步骤,我们可以实现一个基本的ListView应用。对于更复杂的场景,如自定义动画、嵌套滑动等,可以深入研究ListView的源码,了解...

    android listView 适配器demo

    在Android开发中,ListView是一个非常重要的组件,它用于展示大量数据列表,通常配合适配器(Adapter)使用。本示例“android listView 适配器demo”将详细讲解如何利用适配器机制来动态填充ListView的数据。 首先...

    ListView的一个各种情况的例子

    以上就是关于“ListView的各种情况的例子”所涵盖的一些关键知识点,涵盖了ListView的基本使用、事件监听、优化技巧以及常见扩展功能。通过实践这些示例,开发者可以更好地理解和掌握ListView的运用,提高Android...

    Viewpager+listview+SQlite

    标题 "Viewpager+listview+SQLite" 涉及到的是Android开发中的三个核心组件:ViewPager、ListView以及SQLite数据库。SQLite是Android系统内置的关系型数据库,用于存储应用程序的数据。ViewPager通常用于实现页面...

Global site tag (gtag.js) - Google Analytics