2014-10-30 67 views
1

我在sqlite數據庫中存儲的東西。其中一個屬性是顏色。當我顯示這個,我想要做我應該如何在sqlite中存儲顏色?

objLinearLayout.setBackgroundColor(some_int) 

通常我會使用R.color.red代替some_int。但是,我堅持這種顏色,我認爲每次運行應用程序時,R文件都會生成一個紅色的新ID,使得該方法不可行。我可以存儲字符串表示形式,如「red」,並在我的java代碼中檢查顏色字符串並應用正確的R.color,但看起來很醜。有沒有辦法解決這個問題?

+0

怎麼樣十六進制和使用其他功能轉換爲任何其他格式,你需要? – Phix 2014-10-30 00:24:56

回答

0

如果你想保存顏色的名字在你的數據庫,你可以使用則getIdentifier方法。

例如:

Resources resources = getResources(); 
int colorId = resources.getIdentifier("your_color_name", "color", getPackageName()); 
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。

相關問題