[英]How do I delete a list of objects from RecyclerView loaded in MainActivity from database upon button click from ChildActivity using Room
I have a RecyclerView
in MainActivity that loads saved data from database using Android Architecture Components
( Room
), this data is then passed to ChildActivity via intent as a parcellable bundle. 我在MainActivity中有一个
RecyclerView
,它使用Android Architecture Components
( Room
)从数据库加载保存的数据,然后将该数据作为一个可拆分的捆绑包通过intent传递给ChildActivity。 I wish to be able to delete this data upon button click from ChildActivity: the issue I have now is to get the RecyclerView
holder position in order to delete this particular part of the RecyclerView
data. 我希望能够在从ChildActivity中单击按钮后删除此数据:我现在遇到的问题是获得
RecyclerView
持有人的位置,以便删除RecyclerView
数据的这一特定部分。 I am aware this is easier by swipe to delete from MainActivity, but I don't want to do that since I will be deleting from ChildActivity upon button click from the context. 我知道通过滑动从MainActivity中删除会更容易,但是我不想这样做,因为从上下文中单击按钮后我将从ChildActivity中删除。 I have come up with the below method, but it's not just working;
我想出了下面的方法,但它不仅起作用,还可以。
public void deleteMovie( RecyclerView.ViewHolder viewHolder){
int position = viewHolder.getAdapterPosition();
List<DataObject> movie = mAdapter.getMovieList();
mDb.dataDao().deleteData(movie.get(position);
}
I don't know where to go from here. 我不知道从这里去哪里。 This method works well for overriden
onSwipe
method of itemTouchHelper class, but this is not my intention. 此方法适用于itemTouchHelper类的
onSwipe
方法的重写,但这不是我的意图。 Kindly help bail me out. 请帮助我。
After deleting the data refresh your adapter 删除数据后,刷新适配器
public void deleteMovie( RecyclerView.ViewHolder viewHolder){
int position = viewHolder.getAdapterPosition();
List<DataObject> movie = mAdapter.getMovieList();
mDb.dataDao().deleteData(movie.get(position);
mAdapter.notifydatasetchanged()
}
I guess this data which is passed to ChildActivity
contains the ID
of the record in the Database's table? 我猜这些传递给
ChildActivity
数据包含数据库表中记录的ID
? So, you can delete this record by ID
or what you use for @PrimaryKey
因此,您可以按
ID
或@PrimaryKey
内容删除此记录。
If this suggestion not helps, please provide more code for better understanding 如果此建议没有帮助,请提供更多代码以更好地理解
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.