Почему только первый элемент счетчика проходит в SQLite Android? - PullRequest
0 голосов
/ 03 апреля 2020

Я разрабатываю менеджер счетов за коммунальные услуги, в который клиент может добавить расходы. Категории расходов загружаются из базы данных 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. Что это за проблема и как ее решить? Большая помощь

...