0

我正在尝试在运行时检索 Android 样式值,因此我可以在自定义组件中应用它们。(将样式 ID 作为第三个参数传递给嵌入式视图的构造函数似乎不起作用。)我找到了Context. obtainStyledAttributes(int, int[]),但这似乎神秘地无法检索我知道在样式中设置的特定属性。(也就是说,当 的int[]android.R.attr.*包含样式中指定的属性和样式中指定的属性的混合时,将为某些但不是全部指定的属性TypedArray具有值(ie TypedArray. hasValue(int) )在风格上。)

我还发现Resources. obtainTypedArray(int),它似乎总是具有样式中的所有值 - 但它似乎很难使用。问题是这些值似乎没有指定它们用于哪个属性 - 它们只是按照属性在<style>资源中出现的顺序出现。

  • 即使在我知道我正在检查哪种风格的特殊情况下,我也无法对属性的顺序做出假设:有人可能会出现并按字母顺序、功能或随机排序。

  • 在更一般的情况下,我需要处理用户可能指定的任何样式资源,我需要按 android.R.attr.*值进行探测。

所以,我的问题是:有什么方法可以找到样式包含的属性、顺序吗?

我可以打电话Resources. getIntArray( styleId ),但这并没有给我一个int[]价值android.R.attr.*

4

1 回答 1

0

我找到了原因Context. obtainStyledAttributes(int, int[]),一直“神秘地失败 [ing]”:需要对 int[] 进行排序

于 2012-09-20T20:05:41.657 回答