ListView の android:onItemClick 属性としてイベントを書けます。
以下、参考情報です。OnItemClick の記載があります。実際に試して動くことも確認しました。
実装方法は2つあります。それぞれ重要なポイントだけに絞ったサンプルコードを掲示します。
1. メソッド参照方式
ビューモデルに AdapterView.OnItemClickListener.onItemClick と同じシグニチャのメソッドを定義し、xml でそのメソッドをバインドします。
java
1// ViewModel
2// ...
3
4public class XxxViewModel {
5// ...
6
7 public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
8 // ...
9 }
10}
xml
1 <data>
2 <variable name="vm" type="XxxViewModel" />
3 </data>
4
5 <...>
6 <ListView
7 android:onItemClick="@{vm.onItemClick}"
8 </...>
2. リスナーバインディング方式
ビューモデルには目的に応じた任意のメソッドを定義し、xml で各種ビューモデルや式を駆使して、そのメソッドを呼び出します。
java
1// ViewModel
2// ...
3
4public class XxxViewModel {
5// ...
6
7 public void onItemClick(String item) {
8 // ...
9 }
10}
xml
1 <data>
2 <variable name="vm" type="XxxViewModel" />
3 </data>
4
5 <...>
6 <ListView
7 android:onItemClick="@{(parent, view, position, id) -> vm.onItemClick((String)parent.getItemAtPosition(position))}"
8 </...>
xml に書いた式はあくまでサンプルです。
parent, view, position, id およびその他のビューモデルや import した各種機能でできることで式を書きます。
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。