如何从 SQLite 检索数据到 EditText 屏幕并使用 onClick 事件滚动

How to Retrieve Data from SQLite to EditText screen and scroll through with onClick Event

我正在构建一个应用程序,它使用 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. 当您移动到下一行时,您并未设置文本,因此显示的数据不会改变。
  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));
                    }
                }
            }