自分でclickListenerのinterfaceを用意しdatabindingする方法
clickイベント用のinterfaceを作る
public interface SampleClickListener { void onClick(String str); }
xmlでView.OnClickListener
のvariableを作成
<data> <variable name="itemClickListener" type="android.view.View.OnClickListener" /> </data>
Viewと紐付ける
<TextView android:layout_width="match_parent" android:layout_height="match_parent" android:onClick="@{itemClickListener}" />
以下リスナーのイベントを受け取るための実装を行う
受け取る側
SampleClickListener listener = new SampleClickListener() { @Override public void onClick(String str) { // やりたいこと書く } }
セット側
bindingTextView.itemClickListener(new View.OnClickListener() { @Override public void onClick(View v) { // View.OnClickListener() listener.onClick(item.text); // SampleClickListener.onClick(str) } })
これで itemClickListener をセットした TextView をタップすると
リスナーセットの時渡したテキストを受け取ることができた!