カスタムビュー定義の行からカスタム属性があります:
<declare-styleable name="ExampleView">
<attr name="order">
<enum name="byValue" value="0" />
<enum name="byKey" value="1" />
</attr>
<!-- and some more attributes -->
</declare-styleable>
Android Studio はこれを検出し、オートコンプリートを提供してくれます。これは素晴らしいことです。したがって、xml 属性は次のようになりますapp:order="byValue"
。BindingAdapter
ただし、データ バインディング API のa を使用したいので、次の@
ような記号で使用する必要があります:app:order="@{byValue}"
残念ながら、これはコンパイルされません。
次に、次のように内部的にも使用する定数を使用しようとしましたapp:order="@{com.example.views.ExampleView.ORDER_BY_VALUE}"
が、これもコンパイルされません。をそのまま使用できますがapp:order="@{0}"
、そのように定義されているため、これが機能することは確かですが、そこで使用している理由は直感的ではありません0
。
この問題を解決するために、より読みやすいコードを作成するにはどうすればよいでしょうか?