我有一個具有自定義屬性的自定義佈局,其中一個是顏色。我有用戶設置此屬性爲一種顏色(不是一種常見的顏色),我使用TypedArray的getColor方法來檢索這種顏色並將其設置爲一個整數(如果我打印出這個int,它是負的)。比方說,我做這樣的事情:Android - 從自定義屬性獲取的顏色返回與colors.xml中相同顏色不同的值
int myColor;
TypedArray ta = getContext().getTheme().obtainStyledAttributes(attrs, R.styleable.MyView, 0, 0);
myColor = ta.getColor(R.styleable.MyView_myColor, -1);
if (myColor == R.color.special_shade_of_yellow) {
mySpecialMethod()
}
現在讓我們假設一個用戶設置要R.color.special_shade_of_yellow屬性。但是,if塊永遠不會經過,所以mySpecialMethod()永遠不會被調用。出於某種原因,myColor是負值,而R.color.special_shade_of_yellow不是。他們爲什麼不返回相同的值?謝謝!
哇,很高興知道!這是修復。非常感謝! – Elise