![](/img/trans.png)
[英]Android: what is the best way to store rectange coordinates in database?
[英]Best way to store Resource id in Database on Android
在我的应用程序中,我希望能够在数据库中存储一些图标的资源ID。 我想这不是保存,因为在后期阶段(应用程序升级)我可能想要为应用程序添加新图标,所以所有id都可能会改变? 如果我不想将图标存储为blob,那么存储资源的最佳做法是什么?
举个例子,假设我有一个游戏1.0,我让用户从一个头像列表中为他的角色选择一个角色。 我想在DB中存储这个头像ID,并确保如果我在游戏1.1中添加更多头像 - 用户仍然会看到他的选择。
最好的方法(在我看来)是存储资源条目名称。
String iconName = getResources().getResourceEntryName(R.drawable.your_icon);
因此,要存储图标的SQLite数据库列将具有TEXT
类型。 你是对的,存储资源ID是一种不好的做法,因为它们是在你编译应用程序时重新创建的,所以你不能依赖它们而不是改变(我学到了很多东西,所有应用程序的图标都搞砸了)。
要在需要时从String获取资源ID,请调用
int resID = getResources().getIdentifier(iconName, "drawable", getPackageName());
请注意, getResources()
和getPackageName()
都是Context
中的方法,因此您需要引用您的应用程序/活动Context才能调用这些方法。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.