用于xml标记的Android自定义枚举

时间:2017-07-07 19:23:18

标签: android xml enums tags

我想在xml / java类中的某个地方声明枚举,无论如何 简单

enum myEnum {
    FIRST,
    SECOND
}

或者在xml中以某种方式声明它 然后在xml中使用它。

我需要的结果是:

<TextView>
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:tag="myEnum/FIRST"
</TextView>

<Button>
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:tag="myEnum/SECOND"
</Button>

等。
有可能吗?

PS。我需要一些可以用于任何标准视图的东西。

2 个答案:

答案 0 :(得分:1)

在attrs.xml中添加以下内容:

p = :to_s.chain([:split,'.'])
p.call(123.45)
#=> ["123","45"]
# Or even 
[123.45,76.75].map(&p)
#=> => [["123", "45"], ["76", "75"]]

在自定义文字视图中按以下方式使用:

  <declare-styleable name="TextView">
    <attr name="font" format="enum">
        <enum name="light" value="0" />
        <enum name="normal" value="1" />
        <enum name="bold" value="2" />
        <enum name="roboto_light" value="3" />
        <enum name="roboto_regular" value="4" />
    </attr>
</declare-styleable>

}

答案 1 :(得分:0)

以简单的方式只需将标签设置为String格式,然后当您想将其用作枚举时,就可以通过以下方式将其转换为枚举值:

myEnum tag = myEnum.valueOf(view.getTag().toString());

并且您可以将其用于开关..case或任何您想要的地方。 希望这对其他人有帮助。