Как получить значения в listview или tableview из базы данных в Android?

#android #listview #tableview

#Android #listview #tableview

Вопрос:

У меня есть база данных с именем wisherDB, и у меня есть таблица с именем tbltasks внутри базы данных.

В таблице просто есть colmmn имен id , title name , date time , type , ,,и,,,. Я хочу получить идентификатор, имя и время для привязки к текущей дате, и я могу получить доступ к текущей дате с помощью класса Calendar, так что это не проблема.

Код выбора находится в отдельном классе с именем DataAccess , и код указан ниже.

Что я хочу сделать, это получить подробную информацию из запроса и отобразить ее в tableview. Я попробовал это без выбора date[предложение where] [что означает select * 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:

У вас проблема в

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

Комментарии:

1. 1 маленькая вещь… если я хочу найти значение 2 для равенства, например, дату и время…. что я должен изменить в разделе параметров…. KEY_TASKDATE «=?» И KEY_TASKTIME = ?», новая строка[]{Дата, время} Это правильно …!!!!!!!