gpt4 book ai didi

android - 如何在 Realm 中存储 Drawable 文件?

转载 作者:行者123 更新时间:2023-11-30 01:42:54 25 4
gpt4 key购买 nike

我只想在 Realm 数据库中存储一个 Drawable 图像文件,但在 Realm 对象中赋值后,它显示一条错误消息“错误:不支持类型 android.graphics.drawable.Drawable 字段”。

public class AppsList extends RealmObject {
public Drawable getAppIcon() {
return appIcon;
}
public void setAppIcon(Drawable appIcon) {
this.appIcon = appIcon;
}
}

Intent i = new Intent(Intent.ACTION_MAIN, null);
i.addCategory(Intent.CATEGORY_LAUNCHER);

List<ResolveInfo> availableActivities = manager.queryIntentActivities(
i, 0);
for (ResolveInfo ri : availableActivities) {
realm.beginTransaction();

appsIconList = realm.createObject(AppsList.class);

appsIconList.setAppLabel(ri.loadLabel(manager).toString());
appsIconList.setAppPackageName(ri.activityInfo.packageName.toString());
appsIconList.setAppIcon(ri.activityInfo.loadIcon(manager).toString());

realm.commitTransaction();
}

请仔细阅读我的帖子,告诉我如何在 Realm 数据库中存储可绘制文件。

最佳答案

我认为你做不到。 Realm 只支持这些类型:

INTEGER,
BOOLEAN,
STRING,
BINARY,
DATE,
FLOAT,
DOUBLE,

引用自:RealmFieldType.java

实际上您也可以将可绘制对象的 id 存储为整数格式,但仍然不推荐这样做,因为每次构建项目时都会生成 id,并且它有可能与您上次保存的不同。

如果您有可绘制对象的名称,您还可以将可绘制对象名称存储到 Realm 数据库并使用此代码获取可绘制对象的 ID

Resources resources = context.getResources();
int resourceId = resources.getIdentifier(name, "drawable",
context.getPackageName());

关于android - 如何在 Realm 中存储 Drawable 文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34195222/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com