いつもわからなくなって過去のコードを掘り出してくることになるので備忘録

  • 論理積を使う
android:visibility="@{hogeFrag!=null && hogeFrag.isGotResult ? View.GONE : View.VISIBLE}"
  • 論理和を使う
android:text="@{HogeClass.canStart() || HogeClass.isFinished() ? "push for start" : null}"
  • 3項演算子を使う
android:text="@{HogeClass.isStarted() ? "isStarted" : null}"
  • 文字列の一部を実行時に値を決める。+ 他の文字列を再利用する。

    • values/strings.xml
    <string name="pages">%1$d枚目%2$s色</string>
    <string name="red"></string>
    
    • layout/hoge_layout.xml
    <layout>
    <data>
        <variable
            name="data"
            type="com.user.hogehoge.hogeClass"/>
    </data>
    
    (中略)
    
     android:text='@{@string/pages(data.pageNo,@string/red)}'
    
    (以下略)
    

->「3枚目赤色」「5枚目赤色」のように実行時に値を変更可能したり、他の文字列を再利用したりできる。

  • 文字列の結合
     android:text='@{ @string/month + @string/day }'
  • android SDKのクラスや自作クラスをimportする(staticな値やメゾッドの使用のため)
   <data>
        <import type="android.view.View"/>

        <import type="com.user.hoge.HogeClass"/>

   </data>
  • 自作クラスのデータを宣言する
    <data>
        <variable
            name="hogeFrag"
            type="com.user.hoge.HogeFragment"
            />
    </data>
Sign up for free and join this conversation.
Sign Up
If you already have a Qiita account log in.