databindingを使って、更に文字列を結合してtextViewに表示したかっただけなんだ...
既知かもしれんけど、結構ハマったので忘備録。。。
はじめに書いてたレイアウトファイル
activity_sample.xml
android:text="@{sampleViewModel.birthdayYear + '年'
+ sampleViewModel.birthdayMonth + '月'
+ sampleViewModel.birthdayDate + '日'}"
めっちゃエラー出た。スタックトレースは割愛ちゃん。
「構文エラー:期待してた入力じゃないです(意訳)」って言われる
e: [kapt] An exception occurred: android.databinding.tool.util.LoggedErrorException: Found data binding errors.
****/ data binding error ****msg:Syntax error: extraneous input '?' expecting {'(', '+', '-', '~', '!', 'boolean', 'char', 'byte', 'short', 'int', 'long', 'float', 'double', VoidLiteral, IntegerLiteral, FloatingPointLiteral, BooleanLiteral, CharacterLiteral, SingleQuoteString, DoubleQuoteString, 'null', Identifier, ResourceReference} file:/Android/Sample/app/src/main/res/layout/activity_sample.xml loc:158:40 - 158:187 ****\ data binding error ****
正解だったレイアウトファイル
activity_sample.xml
android:text='@{sampleViewModel.birthdayYear + @string/common_year
+ sampleViewModel.birthdayMonth + @string/common_month
+ sampleViewModel.birthdayDate + @string/common_day}'
いつもお世話になってるstackoverflowからこの記事を発見。
databindingのバグじゃない?って書いてあるけどほんとかなー。
AndroidStudioの補完くん優秀だからだいたい @string
の候補出してくれるけど、
この箇所に限っては補完候補全然出てこないので不安になる。タイポ注意ネ