如何在JAR库中获取可设置的属性? attrs.xml在主应用程序中

时间:2014-08-11 12:59:02

标签: android xml jar

我有自定义小部件

<com.example.MyWidget
        xmlns:custom="http://schemas.android.com/apk/res-auto"
        android:layout_width="wrap_content"
        custom:key="242"
        android:layout_height="wrap_content"/>

它在jar库中声明。 我在主应用程序中有attrs.xml

<declare-styleable name="MyWidget">
    <attr name="key" format="string"/>
</declare-styleable>

我必须在MyWidget类中获得该值。

我尝试在MyWidget的构造函数中执行此操作:

    TypedArray a = context.obtainStyledAttributes(attrs,R.styleable.MyWidget);
            try {
                myKey = a.getString(R.styleable.MyWidget_key);
            }
            finally {
                a.recycle();
}

但是R $ styleable的NoClassDefFoundException 我做错了什么?

1 个答案:

答案 0 :(得分:1)

R.styleable.MyWidget不在你的jar中,所以它总是会返回NoClassDefFoundException

你必须得到属性:

for (int i = 0; i < attrs.getAttributeCount(); i++){
    if (attrs.getAttributeName(i).equals("key")){
        myKey = attrs.getAttributeValue(i));
    }
}