Как извлечь данные из SQLite на экран EditText и прокрутить событие onClick - PullRequest
0 голосов
/ 13 февраля 2019

Я создаю приложение, которое извлекает данные с использованием объекта курсора из базы данных SQLite и заполняет каждую строку до EditText на экране.При нажатии кнопки следующая строка данных должна быть вставлена ​​на экран EditText.По сути, каждое событие нажатия кнопки прокручивается до следующей строки данных и вставляется для редактирования текста на экране.Мой код получает данные из SQLite и вставляет первую строку данных на экран.Однако, когда я нажимаю кнопку загрузки, следующая строка данных не отвечает.

 public void viewStockMaterialDataToScreen(){
        final Cursor cursor = controller.getAllStockMaterialData();
        if (cursor.getCount() == 0) {
            Toast.makeText(DataEntry_DailyStockTake.this, "No data exists in the database", Toast.LENGTH_SHORT).show();
            return;
        }
        if (cursor.moveToFirst()) {
                StockMaterial.setText(cursor.getString(1));
                UnitOM_Str.setText(cursor.getString(2));
                UnitOM_Ava.setText(cursor.getString(3));
                MinimumOQ.setText(cursor.getString(6));
        }
                button_Move_next.setOnClickListener(new View.OnClickListener() {
                    @Override
                    public void onClick(View v) {
                                           while (cursor.moveToNext()){}

                    }

       });
   }

1 Ответ

0 голосов
/ 13 февраля 2019

Я полагаю, у вас есть две проблемы.

  1. Вы не устанавливаете текст при переходе к следующей строке, поэтому отображаемые данные не изменяются.
  2. Выцикл по всему курсору и окончание в позиции AfterLastRow при нажатии, а не просто переход к следующей строке.

Таким образом, вы хотите что-то вроде: -

            button_Move_next.setOnClickListener(new View.OnClickListener() {

                @Override
                public void onClick(View v) {
                    if (cursor.moveToNext()) {
                        StockMaterial.setText(cursor.getString(1));
                        UnitOM_Str.setText(cursor.getString(2));
                        UnitOM_Ava.setText(cursor.getString(3));
                        MinimumOQ.setText(cursor.getString(6));
                    }
                }
            }
...