从xml中读取android样式会产生不同的结果

时间:2013-10-23 15:19:00

标签: android android-styles

例如,我有这样的样式,它在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)

这是问题,值为null。为什么会这样?如何阅读这个值?

P.S。我需要读取任何样式的所有值。我不知道“item”没有定义风格。

P.S.S。更复杂的例子

<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

0 个答案:

没有答案