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

问题描述 投票:1回答:1

我正在构建一个应用程序,它使用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()){}

                    }

       });
   }
android android-edittext cursor android-sqlite onclicklistener
1个回答
0
投票

我相信你有两个问题。

  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));
                    }
                }
            }
© www.soinside.com 2019 - 2024. All rights reserved.