Android:从styles.xml中定义的某种样式获取textColor属性

时间:2016-04-07 16:01:55

标签: android android-layout

我在styles.xmlstyles.xml(v21)中定义了两种样式。它们都包含textAppearance属性,该属性链接到某种默认的android文本样式。

styles.xml

<style name="NotificationTitle">
    <item name="android:textAppearance">
        @android:style/TextAppearance.StatusBar.EventContent.Title
    </item>
</style>

styles.xml(v21)

<style name="NotificationTitle">
    <item name="android:textAppearance">
        @android:style/TextAppearance.Material.Notification.Title
    </item>
</style>

这些默认样式包含一些文本属性:textColortextSize等:

...
<style name="TextAppearance.Material.Notification.Title">
    <item name="textColor">@color/primary_text_default_material_light</item>
    <item name="textSize">@dimen/notification_title_text_size</item>
</style>
...

我需要以自定义样式的名称(示例中的NotificationTitle)以编程方式获取此textColor。我试图使用obtainStyledAttributes获取它,但它没有返回。我该怎么办?

int resultColor;
int[] attrs = {android.R.attr.textColor};
TypedArray ta = context.obtainStyledAttributes(R.style.NotificationText, attrs);

if (ta != null) {
    resultColor = ta.getColor(0, Color.TRANSPARENT);
    ta.recycle();
}

1 个答案:

答案 0 :(得分:1)

很抱歉,如果我的回答有点迟,但我尝试了一些修改后的代码,我将样式更改为:

user.resetPassword({
          new_pwd: new_password,
          token
        }, (err, data) => {
          if (err || !data.status) {
            return err || data;
          } else {
            return data;
          } 
        });

并且所有代码都运行良好(现在我使用AppCompat并不需要v21代码)

我希望这会有所帮助。