在Android中显示数据库表数据

时间:2011-04-07 16:56:00

标签: android android-tablelayout

我正在尝试从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函数,则会显示从数据库中提取的数据。请帮忙。

以下是整个代码的链接:

http://pastebin.me/24d7e33ce334e56087dcb657081684e9

2 个答案:

答案 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 );
}