android - 未显示实时数据(Android Studio)
问题描述
我试图运行代码
LiveData<ArrayList<TodoModel>> liveData = todoTable.getAllTodos(db);
todoTable.getAllTodos(db).observe(this, new Observer<ArrayList<TodoModel>>() {
@Override
public void onChanged(ArrayList<TodoModel> todoModels) {
todoList.clear();
todoList.addAll(todoModels);
todoAdapter.notifyDataSetChanged();
}
});
这是 getAllTodos 方法
public MutableLiveData<ArrayList<TodoModel>> getAllTodos(SQLiteDatabase db) {
MutableLiveData<ArrayList<TodoModel>> liveTodos = new MutableLiveData<>();
ArrayList<TodoModel> todos = new ArrayList<>();
Cursor cursor = db.query(TABLE_NAME,
new String[]{columns.id, columns.title, columns.task, columns.category, columns.date, columns.time},
null, null, null,
null, null);
while (cursor.moveToNext()) {
TodoModel todo = new TodoModel(cursor.getString(1), cursor.getString(2),
cursor.getString(3), cursor.getLong(4), cursor.getLong(5));
todos.add(todo);
}
liveTodos.setValue(todos);
return liveTodos;
}
每当 ArrayList 待办事项发生更改时,不会立即显示更改。但是在重新启动应用程序后,会显示新的 TodoModel。
解决方案
推荐阅读
- apache-flink - Flink - Table SQL API - 向表中添加列
- node.js - 节点预gyp错误!堆栈错误:无法执行'/usr/local/bin/node /usr/local/lib/node_modules
- appium - 当我尝试在 Browserstack 上使用 AppiumDriver 运行测试时,我收到“页面对象类 integration.pages.login.LoginPage 看起来很狡猾:”错误
- floating-point - 当加数包含舍入误差时如何评估交替序列?
- magento2.2 - 在单个产品页面 Magento 2 上添加到购物车后如何重定向到结帐页面?
- python - 将空行添加到 python 数据框
- php - PHP中的字符串数组(检查2个或更多字符串是否具有相同的开头)
- cmake - Apache Thrift 编译 C++ 服务器
- webpack - 用 webpack-dev-server 收听地址?
- python - 在 MPII Human Pose 数据集上训练 Keras 分类器