除了 notifyDataSetChanged 之外,还有其他更新 RecyclerView 的方法吗?

问题描述 投票:0回答:2

我目前正在学习编写android应用程序,所以请耐心等待我,我是初学者。

我正在尝试在不同的活动之间进行通信,以设置警报,我找到了此页面是否可以在 Android 上向 SharedPreferences 添加数组或对象 这帮助我分享了有关警报的信息。 另外,到目前为止,我只实现了所有方法的 MathMethodSetActivity 来关闭警报,用于设置难度和特定任务等内容。此外,QueueRecViewAdapter(recyclerView 的适配器)目前仅支持 mathMethods。

我的实现可以在https://github.com/divi0001/找到 具体来说,在EditAlarmActivity中(https://github.com/divi0001/Alarm/blob/master/main/java/com/example/alarm/EditAlarmActivity.java) 目前这是 366+ 行 在它的正上方,我为 recyclerView 设置了一个适配器,它应该显示有关设置方法的基本信息。问题是,即使我认为我已经解决了,但进行设置的活动和 EditAlarmAcitivity 确实进行了通信,但 recyclerView 仍然没有更新。我已经调用了 notifyDataSetChanged();在适配器类中多次,所以我不明白为什么它没有显示。 有人可以帮助我吗?

我尝试通过 ValContainer 类进行通信,但没有用,因为我认为您不能在匿名子类中使用类的资源。我不想使用 GSON,所以我创建了自己的 JSONHandler 类来将警报对象与 JSONArray 相互转换。我还尝试使用来自 Java (ObjectIn/OutputStream) 的标准(反)序列化。我还确定,所有需要的东西都在 xml 文件中设置为可见,通常我希望当我更改 ArrayList 时,RecyclerView 正在从中获取每个项目,然后它还应该将它的视图更新为带有信息的新 CardView指定的。 我还尝试使用 Intents (putExtra, onActivityResult)

java android android-studio android-activity sharedpreferences
2个回答
0
投票

例如有DiffUtil

但是如果您在设置值后调用

notifyDataSetChanged()
内部
setAlarmParameters()
方法,则应该更新数据。


0
投票

嗯,我现在解决了错误,似乎是 holder.parent.setOnClickListener 引起的,不太清楚为什么,但我真的不需要它,所以我暂时把它注释掉了:)

© www.soinside.com 2019 - 2024. All rights reserved.