android - 我应该像在 sqlite 中一样存储颜色?

标签 android sqlite activeandroid

我正在将内容存储在 sqlite 数据库中。它的属性之一是颜色。当我显示这个时,我想做

objLinearLayout.setBackgroundColor(some_int)

通常我会使用 R.color.red 代替 some_int。但是,我保留了颜色,并且我认为每次运行应用程序时 R 文件都会为红色生成一个新的 ID,这使得该方法不可行。我可以存储字符串表示形式,如“red”,并在我的 java 代码中检查颜色字符串并应用正确的 R.color,但这看起来很难看。有解决办法吗?

最佳答案

您不应将 R 中的值(即 R.color.red)存储在任何类型的永久存储中。该值会在每次应用构建时重新生成,因此,如果发布更新,以前的 R.color.red 现在是 R.color.purple 或更糟的 R.layout.activity_main.

您可以做的是将解析后的颜色存储在 SQLite 数据库中 (getResources().getColor(R.color.red)),因为它只是代表颜色的整数,而不是指针到一种颜色。这样,如果您最终将 R.color.red 从 #F00 更改为 #E00,则保存的值将为 #F00。

关于android - 我应该像在 sqlite 中一样存储颜色?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26642872/

相关文章:

java - 如何使用 Activity android序列化字节数组并将其存储到数据库中?

sqlite - 事件的android中的“NOT”子句?

java - 使用Firebase身份验证但需要提高安全性

iphone - 如何在 iOS 上拍照并保存在 SQLite 数据库中

android - WebViewClient.shouldOverrideUrlLoading 给出无效的 url

sqlite - 如何在一台服务器上托管多个幽灵博客

c++ - SQLite 和结帐语义

java - 使用 Active Android 将日期保存到 sqlite 数据库

android - 在 Google Maps Android API v2 中使用新的 OnMyLocationChangeListener

java - 如何从Facebook获取个人资料图片