java - 如何在ui线程上刷新回收器视图
问题描述
我的应用程序中有一个回收器视图,我从用户那里获取值并将其存储在 SQLite 数据库中,然后这些值将通过检索显示在回收器视图中。问题是回收器视图仅在我重新打开我的活动时更新,所以我如何在不重新打开活动的情况下刷新回收器视图,我应该使用 UI 线程吗?图像: 插入项目后
重新打开活动后 ,当用户单击插入按钮时,我想在 recyclearview 上显示插入的项目
这是我的代码:
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
editText=findViewById(R.id.ed1);
button=findViewById(R.id.INSERT);
name=new ArrayList<>() ;
id=new ArrayList<>();
recyclerView=findViewById(R.id.res);
database=new Database(MainActivity.this);
button.setOnClickListener(v -> {
database.insert(editText.getText().toString().trim());//insert
adapter.notifyDataSetChanged();
});
StoreDataInArray();//for store database data in array
adapter=new Adapter(name,id,MainActivity.this);
recyclerView.setAdapter(adapter);
recyclerView.setLayoutManager(new LinearLayoutManager(MainActivity.this));
}
解决方案
你可以使用方法
runOnUiThread(new Runnable() {
public void run() {
adapter.notifyDataSetChanged();
}
});
推荐阅读
- android - 如何在textinputlayout内的textinputedittext中更改光标颜色
- pine-script - 在脚本中向前和向后移动?
- ios - 使用 FCM 的 Flutter 推送通知在 iOS 上不起作用
- sql-server - 如何从 SQL Server 输出打印消息?(DB-Link 错误消息)
- javascript - 将对象合并在一起
- scala - Scala:泛型和隐式
- couchdb - 我们如何在 couchDB 中使用 curl 从数据库中过滤文档
- python - 使用 AWS Chalice 和 BOTO3 的 SQS 到 AWS Lambda 函数
- javascript - 如何使用 Vue 设置输入文件选取的图像?
- mongodb - 为什么 Spark 不使用 MongoDB 副本集?