我只想在 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/