データバインディング変数のジェネリック型を定義する方法は?
次のコードはコンパイルされません。
<data>
<variable
name="viewModel"
type="com.example.viewmodel.ViewModel<Model>"/>
</data>
以下に示すように、<Model>をエスケープする必要があります。
<data>
<variable
name="viewModel"
type="com.example.viewmodel.ViewModel<Model>"/>
</data>
Android Studioには引き続き「シンボルを解決できません」というエラーが表示されますが、XMLはコンパイルされます。これは既知の問題です。 From Android Studioのデータバインディングのサポート :
注:配列およびObservableクラスなどのジェネリック型は、エラーがない場合にエラーを表示する場合があります。
これを試してください:
<data>
<variable
name="viewModel"
type="com.example.viewmodel.ViewModel<Model>"/>
</data>
<
は<および>
は>を担当します。
上記の例のようなものを設定できます。
<data>
<import type="com.example.path.Model"/>
<variable
name="obj"
type="com.example.viewmodel.ViewModel<Model>"
/>
</data>
注:モデルの最後に「>」または「>
」と書くことができます。
エラー表示を回避するには、使用されているオブジェクトタイプを示す行を追加することを忘れないでください。
<import type="com.example.path.Model"/>
XMLには左三角括弧があります。 XMLはそのようには機能しません。試してみてください
<data>
<variable
name="viewModel"
type="com.example.viewmodel.ViewModel<Model>"/>
</data>