Android用光标填充listview

时间:2010-11-21 13:41:06

标签: java android

我的应用使用简单的SQLite数据库。一切正常我现在可以使用以下命令从返回查询中显示一个Toast选定的行:

{
    //etc etc etc...

    c.movetofirst();
    DisplayTitle(c);
}
public void DisplayTitle(Cursor c)
{
    Toast.makeText(main.this, 
            "id: " + c.getString(0) + "\n" +
            "reg: " + c.getString(1) + "\n" +
            "type: " + c.getString(2) + "\n",
            Toast.LENGTH_LONG).show();        
}

我想使用视图将光标中的所有数据压缩到屏幕,但我不知道如何解决这个问题。我应该使用哪种视图?我只是想看一个简单的网格表示,它允许我滚动光标中的每一行

提前致谢。

1 个答案:

答案 0 :(得分:2)

  

如何在Cursor中显示所有行?

如果使用Cursor,有几种方法,例如,请参阅“moveTo”相关方法,这是一个示例:

Set<Item> items = new HashSet<Item>(c.getCount());
if (c.moveToFirst()) {
            do {
               Item i = new Item(select(c.getString(0), c.getString(1), c.getString(2));
               set.add(i);
            } while (c.moveToNext());
         }
         if (!c.isClosed()) {
            c.close();
         }

这假设Item是一个具有三个String参数的构造函数的数据类。使用您的代码,ID,注册表和类型。通常第0列将是一个数字ID(不是getString,但是SQLite使用“manifest typing”,因此它将从第0列中对dyna类型字符串/长度进行排序 - 您可能希望使用AUTOINCREMENT并使用getLong)。

你有一个项目集合,你可以随心所欲地做任何事情来展示它们。如果您想要滚动/可选列表,那么ListView是一个很好的选择。并且,您可以使用CursorAdapter支持它。

以下是来自开源项目的ListView填充的CursorAdapter示例:http://code.google.com/p/and-bookworm/source/browse/trunk/src/com/totsp/bookworm/Main.java(请参阅内部BookCursorAdapter类,它应该让您指向在正确的方向)。