Android 如何使用SqlDatabase刷新ArrayList中的单个项?
我有这样的想法: MainActivity-->RecyclerView-->Recycler\u adpeter.class-->BackgroundTask.classAndroid 如何使用SqlDatabase刷新ArrayList中的单个项?,android,arraylist,android-recyclerview,android-sqlite,refresh,Android,Arraylist,Android Recyclerview,Android Sqlite,Refresh,我有这样的想法: MainActivity-->RecyclerView-->Recycler\u adpeter.class-->BackgroundTask.class 在BackgroundTask.class中,我将SQLDatabase中的数据放入ArraList datalist=new ArraList() 当我在Recyclerview中按edit按钮时,我将进入下一个活动,编辑数据,然后按save按钮更新我的SqlDatabase,然后返回MainActivity.class中
在BackgroundTask.class中,我将SQLDatabase中的数据放入
ArraList datalist=new ArraList()代码>
当我在Recyclerview中按edit按钮时,我将进入下一个活动,编辑数据,然后按save按钮更新我的SqlDatabase,然后返回MainActivity.class中的我的Recyclerview
问题在于Recyclerview中的数据。它不是刷新,而是显示旧数据。仅当我退出活动并再次打开它时,新数据才可见。
我想在按下SecondActivity.class中的save按钮后刷新数据。(在MainActivity中使用onActivityResult)。
我不想刷新整个数组,只想刷新带有mAdapter.notifyItemChanged(位置)的单个项目代码>
怎么做
我尝试在MainActivity中实现onActivityResult
,但当我传递数组的位置并调用mAdapter.notifyItemChanged(位置)时代码>什么都没有发生。我必须将数据放入数组(知道它),我会这样做:
@Override
protected void onActivityResult(int requestCode, int resultCode, @Nullable Intent data) {
super.onActivityResult(requestCode, resultCode, data);
int postion2 = data.getIntExtra("result",default:0);
int amount = data.getIntExtra("key2", default:0);
Custom_Object item = new Custom_Object();
item.setAmount(amount);
database_list.set(position2,item); <-- (in second parameter) It forces me "custom_object element"
mAdapter.notifyItemChanged(position2);
}
Custom_Object item = new Custom_Object();
item.setAmount(amount);
item.setName(); <-- I should copy data from SecondActivity and pass it again even if nothing changed
item.setSecondName(amount);<-- I should copy data from SecondActivity and pass it again even if nothing changed
database_list.set(position2,item); <-- (in second parameter) It forces me "custom_object element"
@覆盖
受保护的void onActivityResult(int-requestCode、int-resultCode、@Nullable-Intent-data){
super.onActivityResult(请求代码、结果代码、数据);
int position2=data.getIntExtra(“结果”,默认为0);
int amount=data.getIntExtra(“键2”,默认为0);
自定义对象项=新自定义对象();
项目.设定金额(金额);
database_list.set(position2,item);我不太使用sqldatabase,但我使用过room db,它做得很好,听起来好像数据一更改数据库就没有更新