我应该如何在sqlite中存储颜色?

Huk*_*ABA 2 sqlite android activeandroid

我将东西存储在sqlite数据库中.它的一个属性是颜色.当我显示这个时,我想做

objLinearLayout.setBackgroundColor(some_int)
Run Code Online (Sandbox Code Playgroud)

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

小智 5

您不应该将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.