我正在构建一个应用程序,该应用程序使用游标对象从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));
}
}
}
关于android - 如何从SQLite检索数据到EditText屏幕并使用onClick事件滚动,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/54674241/