首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在使用文件室从ChildActivity单击按钮时从RecyclerView中删除从数据库加载到MainActivity中的对象列表

如何在使用文件室从ChildActivity单击按钮时从RecyclerView中删除从数据库加载到MainActivity中的对象列表
EN

Stack Overflow用户
提问于 2018-09-05 13:21:00
回答 2查看 41关注 0票数 0

我在MainActivity中有一个RecyclerView,它使用Android Architecture Components (Room)从数据库加载保存的数据,然后通过intent将这些数据作为一个可打包的包传递给ChildActivity。我希望能够在点击按钮后从ChildActivity中删除此数据:我现在的问题是获得RecyclerView持有者的位置,以便删除RecyclerView数据的这一特定部分。我知道通过swipe从MainActivity中删除会更容易,但我不想这样做,因为我会在从上下文中单击按钮时从ChildActivity中删除。我已经想出了下面的方法,但它不仅仅是有效的;

代码语言:javascript
复制
public void deleteMovie( RecyclerView.ViewHolder viewHolder){ 
    int position = viewHolder.getAdapterPosition();
    List<DataObject> movie = mAdapter.getMovieList();
    mDb.dataDao().deleteData(movie.get(position);
}

我不知道下一步该怎么走。此方法适用于itemTouchHelper类的重写onSwipe方法,但这不是我的本意。请帮我保释出来。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2018-09-05 15:51:14

我猜这个传递给ChildActivity的数据包含数据库表中记录的ID?因此,您可以通过ID或用于@PrimaryKey的内容来删除此记录

如果这个建议没有帮助,请提供更多代码以便更好地理解

票数 0
EN

Stack Overflow用户

发布于 2018-09-05 13:24:27

删除数据后,刷新适配器

代码语言:javascript
复制
 public void deleteMovie( RecyclerView.ViewHolder viewHolder){
        int position = viewHolder.getAdapterPosition();
        List<DataObject> movie = mAdapter.getMovieList();
        mDb.dataDao().deleteData(movie.get(position);
        mAdapter.notifydatasetchanged()
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/52177574

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档