DataBindingを使えばViewのtag
フィールドに好きなオブジェクトを差し込めるので↓のような実装を試してみました.
固定長リストをlayout.xmlで定義する際にenumを設定すれば, onClickリスナーでそれを取り出して使うことができます.
キャストする箇所がアレですが,,
<layout>
<data>
<import type="hoge.foo.Type"/>
</data>
<LinearLayout
...
>
<TextView
...
android:tag="@{Type.A}" />
<TextView
...
android:tag="@{Type.B}" />
<TextView
...
android:tag="@{Type.C}" />
<TextView
...
android:tag="@{Type.D}" />
</LinearLayout>
</layou>
@Override public void onClick(View v) {
Object tag = v.getTag();
if (tag == null || !(tag instanceof Type)) return;
Type type = Type.class.cast(tag);
...
}
以上です.