有没有办法在Android中创建自定义XML属性?

时间:2014-01-11 02:47:56

标签: android xml android-layout

我正在编写自定义 Layout 对象,我想强制开发人员指定特定的XML属性。我的意思是,对于所有View个对象,需要layout_widthlayout_height属性。

从我做的研究中可以看出,似乎有一个名为getLayoutDimension(int, String)的自定义TypedArray方法通过期望维度来处理此强制执行,并将给定字符串作为一部分提供如果该维度无效,则会显示错误消息。理想情况下,我也可以做其他类型的事情,比如枚举。 Android SDK中是否存在此功能?

1 个答案:

答案 0 :(得分:3)

之前我已经完成了这个,我在自定义布局的ctor中实现了它。我会查询一些东西,如果它不可用则抛出一个RuntimeException。

final TypedArray attributeArray = context.obtainStyledAttributes(attrs, R.styleable.styledTextView);
final String typeface = (attributeArray != null)
                                ? attributeArray.getString(R.styleable.styledTextView_font)
                                : null;

if(typeface == null)
    throw new RuntimeException("must provide foo:typeface attribute for this view."); 

这对我们需要完成的工作起作用。