【问题标题】:Android getAttributeResourceValue always returns 'default value'Android getAttributeResourceValue 始终返回“默认值”
【发布时间】:2015-03-27 13:30:09
【问题描述】:

我创建了一个带有属性的自定义视图,但我无法从我定义的属性中获取可绘制对象。

View 的构造函数如下所示:

public DrawingView(Context context, AttributeSet attset) {
      super(context, attset);
      foregroundDrawableId = attset.getAttributeResourceValue(R.attr.foreground_drawable_overlay, R.drawable.gear);
      setupDrawing();
}

xml 看起来像这样:

<no.flammbaert.flammbaert.DrawingView
    android:id="@+id/drawing"
    android:layout_width="fill_parent"
    android:layout_height="0dp"
    android:layout_marginBottom="3dp"
    android:layout_marginLeft="5dp"
    android:layout_marginRight="5dp"
    android:layout_marginTop="3dp"
    android:layout_weight="1"
    android:background="#FFFFFFFF"
    app:foreground_drawable_overlay="@drawable/fargespill_bg_bjorn"/>

attrs.xml 如下所示:

<?xml version="1.0" encoding="utf-8"?>
<resources>
    <declare-styleable name="DrawingView">
        <attr name="foreground_drawable_overlay" format="reference" />
    </declare-styleable>
</resources>

但是当我运行它时,它总是从 getAttributeResourceValue 返回默认值。

如果有人能告诉我我做错了什么,我将不胜感激。

【问题讨论】:

    标签: java android xml attributes


    【解决方案1】:

    您是否尝试过在另一台设备上执行该应用程序?我在 Eclipse 布局视图中遇到了同样的问题,但是当我在真实设备上对其进行测试时,它工作得很好。 另一个想法可能是,如果您更改了属性的类型,让 R 被重新创建,这为我修复了它

    我知道,这篇文章已经很老了,但是对于任何找到它的人,我希望我能帮助你

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2014-11-10
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2015-07-12
      • 2021-11-03
      • 1970-01-01
      • 2017-12-25
      相关资源
      最近更新 更多