如何从Android中的数据库获取listview或tableview的值?

时间:2011-11-12 07:04:02

标签: android listview tableview

我有一个名为wisherDB的数据库,我在数据库中有一个名为tbltasks的表。

表中只有idtitlenamedatetimetype的colmmn名称。我想得到id,name和与当前日期相关的时间,我可以通过Calendar类访问当前日期,这不是问题所在。

选择代码位于一个名为DataAccess的单独类中,代码如下所示。

我想要做的是从查询中获取详细信息并将其显示在tableview上。我试过这个没有选择date [where子句] [这意味着选择* from ...]正在为此工作。

但是通过选择,它没有显示数据。

DatabaseAccess类选择查询:

public Cursor getTasktoDate(String Date) throws SQLException
{
    Cursor mCursor=db.query(true, DATABASE_TABLE, new String[] {KEY_ROWID,KEY_TASKNAME,KEY_TASKTYPE}, KEY_TASKDATE+"="+ Date, null, null, null, null, null);
    if(mCursor!=null)
    {
        mCursor.moveToFirst();
    }
    return mCursor;
}

这是活动的代码:

    Cursor c=dba.getTasktoDate("2011/10/12");
    if (c.moveToFirst())
    {
      do {
        DisplayContact(c, tltodaytask);
      } while (c.moveToNext());
    }
    dba.Close();
}

private void DisplayContact(Cursor c, TableLayout tltodaytask) {
    // TODO Auto-generated method stub
    String id=c.getString(0);
    String tName=c.getString(1);
    String tType=c.getString(2);
    insertRow(tltodaytask,id,tName,tType);
}

private void insertRow(TableLayout tltodaytask, String id, String tName,
        String tType) {
    // TODO Auto-generated method stub
    final TableRow newrow = new TableRow(this);

    addTexttoRowswithValues(newrow, id);
    addTexttoRowswithValues(newrow, tName);
    addTexttoRowswithValues(newrow, tType);
    tltodaytask.addView(newrow);
}

private void addTexttoRowswithValues(TableRow newrow, String text) {
    // TODO Auto-generated method stub
    TextView textview = new TextView(this);
    textview.setWidth(115);
    textview.setText(text);
    newrow.addView(textview);
}

此方法不起作用。

1 个答案:

答案 0 :(得分:2)

你有问题

Cursor mCursor=db.query(true, DATABASE_TABLE, 
        new String[] {KEY_ROWID,KEY_TASKNAME,KEY_TASKTYPE}, 
        KEY_TASKDATE+"="+ Date, null, null, null, null, null);

你应该使用

Cursor mCursor=db.query(true, DATABASE_TABLE, 
        new String[] {KEY_ROWID,KEY_TASKNAME,KEY_TASKTYPE}, 
        KEY_TASKDATE+"= ?", new String[]{Date}, null, null, null, null);