2011-10-06 129 views
4

在ATTRS我背景問題與風格和主題

<attr name="bzz" format="color" /> 
在主題

然後

<style name="mytheme" parent="android:Theme"> 
    <item name="bzz">@color/aaa</item> 
</style> 

,並在代碼 這個偉大工程

tv.setBackgroundResource(R.color.aaa); 

,但是當我這樣做它給我一個錯誤

tv.setBackgroundResource(R.attr.bzz); 

我不明白這是什麼問題,我的邏輯是,我設置了BZZ作爲參考顏色,這樣應該可以正常工作,但它不會:) 它說,像android.content.res.Resources$NotFoundException: Resource ID #0x7f010008 ,但我不明白的資源找不到?

我相信,顏色有沒有罪,如果我把它直接它的偉大工程,是什麼exacly是無法正確鏈接

感謝

+0

也有類似的問題。從邏輯上講,它是健全的。不知道爲什麼它不起作用。 – HGPB

回答

11

您需要解決attr得到的東西對應的color的資源ID。然後,您可以將TextView的後臺資源設置爲獲取的資源ID。

示例代碼:

TypedValue typedValue = new TypedValue(); 
getTheme().resolveAttribute(R.attr.bzz, typedValue, true); 
tv.setBackgroundResource(typedValue.resourceId); 
+0

不適用於API 21 – Sunny