android - 如何从 SQLite 检索数据到 EditText 屏幕并使用 onClick 事件滚动
问题描述
我正在构建一个应用程序,它使用 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()){}
}
});
}
解决方案
我相信你有两个问题。
- 当您移动到下一行时,您没有设置文本,因此显示的数据不会改变。
- 当您单击而不是仅仅移动到下一行时,您正在遍历整个光标并最终到达 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));
}
}
}
推荐阅读
- ios - Swift 中的泛型选择器视图
- python - 字符(音节)在枕头中未按正确顺序呈现
- reactjs - Redux - 如何调用一个动作并等待它解决
- wordpress - 显示特定用户自定义个人资料页面的评论
- vue.js - 如何编写一个服务工作者和 vue 组件都可以使用的全局函数?
- javascript - 如何用 moment.js 比较两个日期
- java - 在 Java 中导入方法
- r - data.table 非等价连接正确返回了一些列,并使用最后找到的值复制了一些列
- .htaccess - 如何仅重定向主域,没有子域或文件夹中的文件?
- java - 如何避免使用正则表达式用双引号括起来的字符串?