#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 = ?», новая строка[]{Дата, время} Это правильно …!!!!!!!