0

例如,我有这样的风格,在 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
4

0 回答 0