我正在将内容存储在 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/