gpt4 book ai didi

android - 在 Android 上的数据库中存储资源 ID 的最佳方式

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:04:35 27 4
gpt4 key购买 nike

在我的应用程序中,我希望能够在数据库中存储一些图标的资源 ID。我想这不是省事,因为在后期(应用程序升级)我可能想向应用程序添加新图标,所以所有的 id 都可能改变?如果我不想将图标存储为 blob,存储资源的最佳做法是什么?

举个例子,假设我有一个游戏 1.0,我让用户从头像列表中为他的角色选择一个头像。我想将这个头像 ID 存储在数据库中,并确保如果我在游戏 1.1 中添加更多头像 - 用户仍然会看到他的选择。

最佳答案

最好的方法(在我看来)是存储资源条目名称。

String iconName = getResources().getResourceEntryName(R.drawable.your_icon);

因此,您要存储图标的 SQLite 数据库列的类型为 TEXT。你是对的,存储资源 ID 是一种不好的做法,因为它们是在你编译应用程序时重新创建的,所以你不能依赖它们不改变(我通过艰难的方式学到了这一点,我所有应用程序的图标都搞砸了)。

要在需要时从字符串中获取资源 ID,请调用

int resID = getResources().getIdentifier(iconName, "drawable", getPackageName());

请注意,getResources()getPackageName() 都是来自 Context 的方法,因此您需要引用您的应用程序/Activity 能够调用这些方法的上下文。

关于android - 在 Android 上的数据库中存储资源 ID 的最佳方式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21402275/

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