Я пытаюсь загрузить Adapter
из базы данных SQLite, и я не могу представить, как это работает. Я чрезвычайно новичок в программировании на Android и Java, поэтому прощайте, если я споткнулся о некоторых из очевидных.Загрузка адаптера ListView в Android
Я понимаю, что для «правильной» настройки базы данных у меня должны быть 3 java-файла, Main, DatabaseHandler и класс для любой моей таблицы, поэтому добираемся туда. У меня большая часть работы в какой-то форме, но я не могу заставить ListView загружать строки в моей таблице.
У меня есть только одна таблица с двумя столбцами, идентификатором и изделием. Код в DatabaseHandler, чтобы получить все детали показано ниже:
public List<Item> getAllItems()
{
List<Item> itemList = new ArrayList<Item>();
String selectQuery = "SELECT * FROM " + TABLE_ITEMS;
SQLiteDatabase db = this.getWritableDatabase();
Cursor cursor = db.rawQuery(selectQuery, null);
if (cursor.moveToFirst())
{
do {
Item item = new Item();
item.setID(Integer.parseInt(cursor.getString(0)));
item.setItem(cursor.getString(1));
itemList.add(item);
} while (cursor.moveToNext());
}
return itemList;
}
Как делать положить, что в ListView Adapter
в основной деятельности? Это то, что я пробовал ниже, и это не сработало. Вместо этого я получил указательные позиции:
List itemArray = db.getAllItems();
//Define a new Adapter
ArrayAdapter<List> adapter = new ArrayAdapter<List>(this,
android.R.layout.simple_list_item_1, android.R.id.text1, itemArray);
//Bind the adapter to the listView
itemView.setAdapter(adapter);
Как загрузить элементы?
Спасибо за предоставленную помощь.
Socaprice
Извините, что не получилось, получение и ошибка в журнале: java.lang.IllegalArgumentException: column '_id' не существует. Заменил «StringColumn» на «item», так как это заголовок нужного столбца, но это приводит к сбою приложения и отображает ошибку, о которой я упоминал выше. – Socaprice
@Socaprice Я обновил свой ответ, чтобы помочь вам получить значения по индексу столбца. – Simas
Извините за то, что я так незнаю, так как я новичок в Android/Java, но где я размещаю код «String itemColumn = queryResult.getColumn (1)»? Я предполагаю, что это должно быть в коде, где я создаю адаптер, но я получаю сообщение об ошибке «не может разрешить символ queryResult». – Socaprice