2015-03-27 2 views
2

Я создал пользовательский вид с атрибутом, но я не могу получить drawable из атрибута, который я определил.Android getAttributeResourceValue всегда возвращает значение по умолчанию

Конструктор 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.

Было бы очень признательно, если бы кто-нибудь мог сказать мне, что я делаю неправильно.

ответ

0

Вы пытались выполнить приложение на другом устройстве? У меня была та же проблема в представлении макета eclipse, но когда я тестировал его на реальном устройстве, он работал нормально. Другой идеей может быть, чтобы R был воссоздан, если вы изменили тип атрибута, который исправил его для меня

И я знаю, этот пост довольно стар, но для тех, кто его найдет, я надеюсь, что смогу помочь вы

Смежные вопросы