如何保存recycleview中每个项目的状态?
这是应用程序主活动的结构
-->电影片段/系列片段 -->通过自定义适配器回收视图 -->卡片视图 XML 布局
主要活动根据按钮选择动态选择片段。 电影/系列片段使用适配器来初始化回收器视图。 该适配器对每个项目使用 XML 卡片视图布局,其中还包含喜欢和不喜欢的单选按钮。
所以这是我的问题,如何保存喜欢和不喜欢单选按钮的状态?在页面(片段)之间切换时?
我已附上应用程序的图像以获取更多上下文
每次我单击电影或系列按钮时,片段都会重新渲染并丢失所有信息。
我要在主要活动中保存状态吗?电影片段?或者在适配器中?正确的做法是什么?
Here is the structure of the application
Main Activity --> movies fragment/series fragment --> recycle view via custom adapter --> card view XML layout
the main activity dynamically selects the fragments based on the button selection.
the movies/series fragments use the adapter to initialize the recycler view.
the adapter uses an XML card view layout for each item which also contains the like and dislike radio buttons.
so here is my question, how do I save the state of the like and dislike radio buttons? when switching between pages(fragments)?
I've attached an image of the application for more context
every time I click movies or series button the fragments rerenders and loses all information.
do I save the state in the main activity? the movies fragment? or in the adapter? whats the correct approach?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
一个简单且快速的解决方案是共享每个项目 ID 的首选项。
但不建议在实际项目中这样做
您可以使用 Room 作为本地数据库,也可以更新服务器上的每个相似或不同的内容,然后在片段重新创建时从服务器获取数据。所有解决方案都取决于您的用例。要记住的因素是数据列表的大小和数据的更新频率。
A simple and faster solution is shareprefs for each item ID.
But this is not recommended for real-world projects
Either you can use Room for the local database or you can update every like or unlike on the server and then fetch your data from the server when fragment recreates. all solution depends on your use case. factors to keep in mind is size of data-list and update frequency of your data.