5

カスタムビュー定義の行からカスタム属性があります:

<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

この問題を解決するために、より読みやすいコードを作成するにはどうすればよいでしょうか?

4

1 に答える 1