我的应用使用简单的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();
}
我想使用视图将光标中的所有数据压缩到屏幕,但我不知道如何解决这个问题。我应该使用哪种视图?我只是想看一个简单的网格表示,它允许我滚动光标中的每一行
提前致谢。
答案 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
类,它应该让您指向在正确的方向)。