在Android中检索有关自定义属性的信息

时间:2019-03-25 08:09:15

标签: android

我想检索一些有关在某些库的“ attrs.xml”资源文件中定义的自定义属性的信息。详细地说,我想获取所有属性的名称和格式。

我搜索了文档,但没有找到任何有关执行此操作的示例。我只找到了有关如何在自定义视图的构造函数中检索这些属性的值的示例。

例如,给出以下XML资源文件。

<resources>
   <declare-styleable name="PieChart">
       <attr name="showText" format="boolean" />
       <attr name="labelPosition" format="enum">
           <enum name="left" value="0"/>
           <enum name="right" value="1"/>
       </attr>
   </declare-styleable>
</resources>

我想获取带有名称和类型的属性列表。像这样的东西。

Attribute name: showText, type: boolean
Attribute name: labelPosition, type: enum {left, right}

1 个答案:

答案 0 :(得分:0)

您可以在Factory上尝试在LayoutInflater上设置特殊的Activity,以用于解析布局文件。

super.onCreate(savedInstanceState);
getLayoutInflater().setFactory(new CustomAttrFactory());
setContentView(R.layout.the_layout);

CustomAttrFactory如下:

public static class CustomAttrFactory implements Factory {

    @Override
    public View onCreateView(String name, Context context,
            AttributeSet attrs) {
        String attributeValue = attrs
                .getAttributeValue(
                        "http://schemas.android.com/apk/res/com.luksprog.droidproj1",
                        "attrnew");
        Log.e("ZXX", "" + attributeValue);
        // if attributeValue is non null then you know the attribute is
        // present on this view(you can use the name to identify the view,
        // or its id attribute)
        return null;
    }
}

更多details,请参见此处。


希望对您有帮助!