Когда я нажимаю на элемент ListView, я получаю следующее сообщение:
Как я могу прочитать элемент и получить имя элемента в строку?
android.database.sqlite.SQLiteCursor@40706330
public void onListItemClick(
ListView parent, View v,
int position, long id)
{
Object o = this.getListAdapter().getItem(position);
String keyword = o.toString();
Toast.makeText(this, keyword, Toast.LENGTH_SHORT).show();
}
Таким образом, я могу прочитать позицию из позиции:
public void onListItemClick(
ListView parent, View v,
int position, long id)
{
open_database_rw();
Object itemId = this.getListAdapter().getItemId(position);
String item = itemId.toString();
Toast.makeText(this, item, Toast.LENGTH_SHORT).show();
}
Теперь мне нравится читать выбранные данные в тост. Я попробовал это так, но это не сработало:
public void onListItemClick(
ListView parent, View v,
int position, long id)
{
open_database_rw();
Cursor cursor = db.query("tbl_homework", new String[] {"hw"},
"_id = 1", null, null, null, null);
int column = cursor.getColumnIndex("hw");
String item = cursor.getString(column);
Toast.makeText(this, item, Toast.LENGTH_SHORT).show();
}
ErrorMessage:
android.database.CursorIndexOutOfBoundsException: индекс -1 запрошен, с размером 1
Проблема была решена! Я должен был переместить курсор в первую очередь
cursor.moveToFirst ();
Полный рабочий код:
public void onListItemClick(
ListView parent, View v,
int position, long id)
{
open_database_rw();
Object itemId = this.getListAdapter().getItemId(position);
String item = itemId.toString();
Cursor cursor = db.query("tbl_homework", new String[] {"hw"},
"_id =" + item, null, null, null, null);
cursor.moveToFirst();
int column = cursor.getColumnIndex("hw");
String hw = cursor.getString(column);
Toast.makeText(this, hw, Toast.LENGTH_SHORT).show();
}