【问题标题】:How to Retrieve Data from SQLite to EditText screen and scroll through with onClick Event如何从 SQLite 检索数据到 EditText 屏幕并使用 onClick 事件滚动
【发布时间】:2019-02-14 03:27:54
【问题描述】:

我正在构建一个应用程序,它使用 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】:

    我相信你有两个问题。

    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));
                        }
                    }
                }
    

    【讨论】:

    • 谢谢 Mike T,它就像一个魅力。我实际上已经添加了你提到的这段代码,说我让光标获取下一个数据,但没有相应的代码显示在编辑文本中,我添加了这个,发现它正在显示数据中的第一个和最后一个数据。这是因为我使用的是“While”循环而不是“If”。现在可以了。再次感谢
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-11-14
    • 2020-10-03
    • 2023-03-27
    • 2014-01-20
    • 1970-01-01
    相关资源
    最近更新 更多