我在MainActivity中有一个RecyclerView,它使用Android Architecture Components (Room)从数据库加载保存的数据,然后通过intent将这些数据作为一个可打包的包传递给ChildActivity。我希望能够在点击按钮后从ChildActivity中删除此数据:我现在的问题是获得RecyclerView持有者的位置,以便删除RecyclerView数据的这一特定部分。我知道通过swipe从MainActivity中删除会更容易,但我不想这样做,因为我会在从上下文中单击按钮时从ChildActivity中删除。我已经想出了下面的方法,但它不仅仅是有效的;
public void deleteMovie( RecyclerView.ViewHolder viewHolder){
int position = viewHolder.getAdapterPosition();
List<DataObject> movie = mAdapter.getMovieList();
mDb.dataDao().deleteData(movie.get(position);
}我不知道下一步该怎么走。此方法适用于itemTouchHelper类的重写onSwipe方法,但这不是我的本意。请帮我保释出来。
发布于 2018-09-05 15:51:14
我猜这个传递给ChildActivity的数据包含数据库表中记录的ID?因此,您可以通过ID或用于@PrimaryKey的内容来删除此记录
如果这个建议没有帮助,请提供更多代码以便更好地理解
发布于 2018-09-05 13:24:27
删除数据后,刷新适配器
public void deleteMovie( RecyclerView.ViewHolder viewHolder){
int position = viewHolder.getAdapterPosition();
List<DataObject> movie = mAdapter.getMovieList();
mDb.dataDao().deleteData(movie.get(position);
mAdapter.notifydatasetchanged()
}https://stackoverflow.com/questions/52177574
复制相似问题