2012-09-19 14 views
0

我試圖在運行時檢索Android樣式值,所以我可以在自定義組件中應用它們。 (Passing a style ID as the 3rd parameter to an embedded View's constructor doesn't seem to work.)我發現Context. obtainStyledAttributes(int, int[]),但這似乎神祕地無法檢索我知道在樣式中設置的特定屬性。 (也就是說,當android.R.attr.*值的int[]包含在樣式指定,則TypedArray將有一個值(TypedArray. hasValue(int)),它們在樣式指定屬性和屬性一些的混合,但不所有的風格中指定的屬性。)在運行時讀取Android樣式信息

我也發現Resources. obtainTypedArray(int),它似乎總是具有樣式中的所有值 - 但它似乎很難使用。問題在於這些值似乎沒有指定它們的屬性 - 它們只是以該屬性出現在<style>資源中的順序出現。

  • 即使在我知道我在研究哪種風格的特殊情況下,我 不能做出假設對屬性的順序:有人可能 一起去和他們按字母順序排序,或在功能,或 隨機。

  • 在我需要處理哪個 樣式資源,用戶可以指定更一般的情況下,我需要通過 android.R.attr.*價值探討。

所以,我的問題:有沒有辦法找出哪些屬性,以何種順序,一個樣式包含?

我可以叫Resources. getIntArray(styleId),但這並沒有android.R.attr.*值的int[]

回答

0

我找到了爲什麼Context. obtainStyledAttributes(int, int[]),保持「神祕失敗」:int[] needs to be sorted