2011-04-07 71 views
0

我想從SQLite數據庫中獲取數據並以Android表格格式顯示它。下面是用於顯示數據的代碼:在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); 
} 

這裏,txtTextView變量,我在班上全局聲明。 tlTableLayout變量,而trTableRow變量,我已經在類中聲明瞭全局變量。

這不起作用。但是,如果我使用Toast函數,則將顯示從數據庫提取的數據。請幫忙。

這裏是鏈接到整個代碼:

http://pastebin.me/24d7e33ce334e56087dcb657081684e9

+0

鄉親大概可以猜出佈局XML看起來像什麼,而是你怎麼樣你展示,只是一樣? – 2011-04-07 20:47:31

回答

1

我的猜測是,每個數據記錄,你需要聲明一個錶行一個新的文本視圖。從解釋中,似乎並不希望對所有數據記錄使用相同的表格行和相同的文本視圖。

如果您仍然卡住,請發佈更完整的代碼示例。最好如此完整以至於其他人可以複製你的問題。另外,請解釋「這不起作用」的含義。

+0

http://pastebin.me/24d7e33ce334e56087dcb657081684e9 ..請在這裏查看完整的代碼.... IT不工作意味着我得到「您的應用程序意外停止工作」錯誤消息... – CuriousCoder 2011-04-07 20:02:35

+0

您是否提出了我建議的更改?你還有問題嗎?您是否可以根據要求發佈完整的代碼,包括佈局XML和Manifest? – 2011-04-16 00:49:31

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