例如,我有这样的风格,在 values/styles.xml 中定义
<style name="subheader">
<item name="android:padding">10dp</item>
</style>
当我试图像这样读取这个值时
theme.obtainStyledAttributes(R.style.subheader, new int[]{android.R.attr.padding}).getString(0)
没关系,值等于“10dip”。但是当我读到这样的值时
theme.obtainStyledAttributes(R.style.subheader, new int[]{android.R.attr.color, android.R.attr.padding}).getString(1)
这是问题,值为空。为什么会这样?如何读取这个值?
PS我需要阅读任何样式的所有值。我不知道“项目”在样式中没有定义。
PSS 更复杂的例子
<style name="subheader">
<item name="android:background">#DAE5E9</item>
<item name="android:layout_margin">10dp</item>
<item name="android:padding">10dp</item>
</style>
的结果
theme.obtainStyledAttributes(R.style.subheader, new int[]{android.R.attr.background, android.R.attr.layout_margin, android.R.attr.padding})
是
0:#DAE5E9
1:10dip
2:10dip
的结果
theme.obtainStyledAttributes(R.style.subheader, new int[]{android.R.attr.background, android.R.attr.layout_margin, android.R.attr.colorBackground, android.R.attr.padding})
是
0:#DAE5E9
1:10dip
2:null
3:null