Я разрабатываю менеджер счетов за коммунальные услуги, в который клиент может добавить расходы. Категории расходов загружаются из базы данных SQLite в курсор. Ниже приведен код для этого
public ArrayList<Category> getAllthePayableCats() {
ArrayList<Category> payableCatsList = new ArrayList<Category>();
SQLiteDatabase db = this.getReadableDatabase();
payableCatsList.clear();
Cursor cursor = db.rawQuery("Select * from OutgoingCategories", null);
cursor.moveToFirst();
while (!cursor.isAfterLast()){
Category category = cursorToCategory(cursor);
payableCatsList.add(category);
cursor.moveToNext();
}
cursor.close();
return payableCatsList;
}
private Category cursorToCategory(Cursor cursor) {
Category category = new Category();
category.setCatID(cursor.getInt(0));
category.setName(cursor.getString(1));
return category;
}
. Отдельно создается класс Category, где есть методы setCatID () и SetName ().
Следующая функция загружает данные счетчика из Arraylist, тип которого является категорией.
private void loadSpinnerData() {
// Spinner Drop down elements
ArrayList<Category> payableCatsList = db.getAllthePayableCats();
// Creating adapter for spinner
ArrayAdapter<Category> dataAdapter = new ArrayAdapter<Category>(this, android.R.layout.simple_list_item_1, payableCatsList);
// Drop down layout style - list view with radio button
dataAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
// attaching data adapter to spinner
s.setAdapter(dataAdapter);
}
Функция вызывается внутри onCreate ().
Ниже показано, как выбрать текущий выбранный элемент из курсора
final Category selectedCat = (Category) s.getSelectedItem();
final int catID = selectedCat.getCatID();
здесь - это имя счетчика, определенное в классе.
Но когда пользователь пытается сделать Расход, все элементы могут быть просмотрены с помощью счетчика, но только 1-й элемент счетчика передается в базу данных SQLite. Что это за проблема и как ее решить? Большая помощь