我正在尝试从SQLite数据库中获取数据并在Android中以表格格式显示它。以下是显示数据的代码:
Cursor c=db.getAllTitles();
if(c.moveToFirst())
{
do
{
DisplayTitle(c);
}while(c.moveToNext());
}
DisplayTitle
函数如下所示:
public void DisplayTitle(Cursor c)
{
txt.setText(c.getString(0));
txt.setTextColor(Color.blue(1));
tr.addView(txt);
tl.addView(tr);
}
这里,txt
是我在类中全局声明的TextView
变量。 tl
变量是TableLayout
变量,而tr
是我在类中全局声明的TableRow
变量。
这不起作用。但是,如果我使用Toast
函数,则会显示从数据库中提取的数据。请帮忙。
以下是整个代码的链接:
答案 0 :(得分:1)
我的猜测是,对于每个数据记录,您需要使用新的文本视图声明 new 表行。根据解释,您似乎不希望对所有数据记录使用相同的表行和相同的文本视图。
如果您仍然卡住,请发布更完整的代码示例。最好是完全的,其他人可以复制你的问题。另外,请解释“这不起作用”的含义。
答案 1 :(得分:0)
试试这段代码......
public Cursor getAll()
{
return db.query(DATABASE_TABLE, new String[] {KEY_ROWID, KEY_NAME,
KEY_MOVES, KEY_TIME}, null, null, null, null, null);
}
之后在主要活动中使用此代码
private void getall()
{
db.open();
Cursor c = db.SortAllRows();
int i=1;
if (c.moveToFirst())
{
do
{
DisplayContact(c,i++);
} while (c.moveToNext());
}
c.close();
db.close();
}
public void DisplayContact(Cursor c,int row )
{
String name11 = c.getString(1) + c.getString(2) + c.getString(3);
tv1.setText(name11 );
}