- android - 多次调用 OnPrimaryClipChangedListener
- android - 无法更新 RecyclerView 中的 TextView 字段
- android.database.CursorIndexOutOfBoundsException : Index 0 requested, 光标大小为 0
- android - 使用 AppCompat 时,我们是否需要明确指定其 UI 组件(Spinner、EditText)颜色
我有两个模型(具有相关属性)如下所示:
@PrimaryKey
String id;
String name;
RealmList<Song> songs;
@PrimaryKey
String id;
String name;
如您所见,一个播放列表可以包含多首歌曲,而一首歌曲可以属于多个播放列表。
在我的应用程序的一部分中,我使用 RealmBaseAdapter 在 RecyclerView 中显示所有歌曲。我完成这个没问题:
RealmResults<Song> songResult = realm.where(Song.class).findAll();
RealmSongsAdapter realmAdapter = new RealmSongsAdapter(getActivity().getApplicationContext(), songResult , true);
songAdapter.setRealmAdapter(realmAdapter);
我的问题是:我将如何只显示特定播放列表的歌曲?由于 Song.java 没有引用它自己的播放列表,我没有办法获得 RealmResult基于播放列表对象。理想情况下,我想要这样的东西:
Playlist playlist = realm.where(Playlist.class).equalTo("id", playlistID).findFirst();
RealmResults<Song> playlistSongs = playlist.getSongs();
但是playlist.getSongs()
返回 RealmList<Song>
而不是 RealmResult<Song>
.
我找到的一个解决方案是创建一个 RealmQuery
基于播放列表中的歌曲 ID,但这似乎违反直觉:
RealmQuery<Song> query = mRealm.where(Song.class);
for (Song song : playlist.getSongs()) {
query = query.or().equalTo("id", song.getId());
}
RealmResults<Song> results = query.findAll();
另一个问题是每次播放列表歌曲列表更改时我都必须重新创建此查询。
有没有更简单的方法?提前致谢!
最佳答案
这里是来自 Realm 的 Christian。不幸的是,如果您不想维护 RealmList<Playlist>
,目前除了您自己找到的方法之外别无他法。 Song
上的字段.也就是说,我们在 TODO 上有一个称为反向链接的概念,它完全适用于这样的用例:https://github.com/realm/realm-java/issues/607
关于java - RealmResult 与适配器的多对多关系,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30425398/
我有一个 Realm 数据库,其中字段 postCategories 包含通过 JSON 从服务器获取的随机字符串类型数据。这些字符串值看起来类似于以下内容: Semester - I, Market
我有一个项目,我请求获取一些对象。这是我进行一些测试后最快的实现,但我觉得我错过了一些东西。我的数据库中有 2000 个对象用于测试,计算之前的代码需要 3.25 秒才能执行。 val all
我在我的代码中收到以下警告。 Unchecked assignment: 'io.realm.RealmResults' to 'io.realm.RealmResults' 我在DBManager中
我有一个小问题,我找不到任何结果。是的,我也做了一些研究。 我有一个变量 mResults = RealmResults ; 这有数据,如下图所示 但是当我输入 >>mResults.size = m
处理日期和时间时如何修改realm结果数据? ASCENDING 和 DESCENDING 对我来说还不够。 例如,我要完成一个小时内到期的任务? RealmResults tmp = realm.
我在我的应用程序中使用回收器 View ,并想在后台线程上进行一些计算,获取 RealmObjects 列表,并根据它刷新我的适配器。 作为一些背景知识,我有一个重要的排序要求,并且回收器 View
我有两个模型(具有相关属性)如下所示: 播放列表.java @PrimaryKey String id; String name; RealmList songs; 歌曲.java @PrimaryK
@Override public boolean onItemMove(int fromPosition, int toPosition) { RealmList results = new
我在 RealmResults 中有大约 20 行,需要使用最近的日期对列表进行排序 RealmConfiguration realmConfig = new RealmConfiguration.B
我正在尝试创建一个搜索引擎来显示包含不同标签的结果。结果必须按相关性排序。 假设我有以下型号: public class Article extends RealmObject{ @Prima
我有自定义类型Playlist的RealmResult。每个 Playlist 都有一个归档的 playlistTypeId,可以是 1、2 或 3。我想按以下方式对 RealmResult 中的对象
我需要对 String 的列表进行排序这实际上是很大的数字(必须使用它,因为 Realm 不支持 BigInteger) RealmResults leaderboardList = realm.wh
我想问一下将 RealmResults 传递给 RecyclerView Adapter 是否安全。像这样: public MyAdapter(Context context, RealmRe
我正在开发一个商店应用程序,每个用户都可以在其中销售商品,也可以将其他用户销售的商品添加到他的愿望 list 中。 现在在用户个人资料中,我想显示他添加到他的愿望 list 中的所有项目。 我的类(c
我有一个场景,我有一个不同 ID 的 ArrayList。现在每个 id 在数据库中都有多条记录,最终结果应该是一个包含这些 id 的所有记录的列表。有什么办法可以将它们全部组合到一个 RealmRe
RealmQuery和RealmResult有什么区别? 更具体地说: 在 RealmQuery 上,我可以使用 equalTo 进行过滤,但我必须将属性名称作为 String 传递,这很容易出错.
我有一行返回带有一些排序数据的 RealmResult。 我想以最快最简单的方式删除所有这些项目。例如: RealmResults currentElements = realm.where(Elem
有一些字段用于存储日期。一些字段有一个日期,而一些字段是空的(没有日期)。我需要以这样一种方式进行排序,即在列表的开头有按升序排列的带有 date 的字段。在列表的末尾,有些字段没有日期。 正常排序会
我是 Realm 的新手,我有一个问题。 我能够使用 Realm 进行一些写入。问题是当我尝试使用 获取 RealmResults 时 mResults = mRealm.where(Player.c
我有一个 RealmResults 对象,它保存 .where.findAll() 查询的输出。我在 RecyclerView 中显示此对象的内容,但由于 RealmResults 对象的内容是静态的
我是一名优秀的程序员,十分优秀!