Android Простой Курсор адаптер и Курсор
Я создал приложение, которое получает данные с другим атрибутом, добавляет их в базу данных, а затем показывает их через ListView.
Я выполнил ту часть, где данные добавляются, но я не могу понять, как извлечь их (сейчас мне просто нужно имя) из базы данных и заполнить их в ListView.
Вот часть в классе базы данных.
public Cursor getCursor() {
Cursor c = null;
sqLiteDatabase = this.getReadableDatabase();
String query = "SELECT * FROM tbl_customer";
String where = null;
c = sqLiteDatabase.query("tbl_customer", new String[]{"Name"}, where, null, null, null, null);
if (c != null) {
c.moveToFirst();
}
return c;
}
вот часть кода в деятельности, в которой я хочу показать ListView.
private void populateListView(){
Cursor cursor = db.getCursor();
String []From = new String[]{"Name"};
int [] to = new int[R.id.textView];
SimpleCursorAdapter adapter;
adapter = new SimpleCursorAdapter(this,R.layout.listview_items,cursor,From,to,0);
ListView listView = (ListView)findViewById(R.id.ShowDataListView);
listView.setAdapter(adapter);
}
Пожалуйста, направь меня туда, где я ошибся, и поправь меня.
3 ответа
Вы используете R.id.textView в качестве размера массива
int [] to = new int[R.id.textView];
так должно быть
int [] to = new int[]{R.id.textView};
Если вам нужен полный учебник о том, как создать список и извлечь его из базы данных sqlite, вот учебник с нуля http://www.androidhive.info/2011/11/android-sqlite-database-tutorial/
Вы должны указать From
а также To
параметры SimpleCursorAdapter.
adapter = new SimpleCursorAdapter(this,R.layout.listview_items,cursor,
new String[] { "Name" },to,0);
Что касается to
необходимо указать идентификатор вашего текстового представления из R.layout.listview_items
, Давайте предположим, что идентификатор вашего TextView R.id.text1
тогда адаптер будет выглядеть следующим образом,
adapter = new SimpleCursorAdapter(this,R.layout.listview_items,cursor,
new String[] { "Name" },
new int[] { android.R.id.text1 },
0);
Здесь, посмотрите на документацию, чтобы понять это более четко.