2016-12-07 102 views
1

我試圖在複選框被選中時進行監聽。CheckBox onCheckedListener無法正常工作DataBinding

問題

onCheckedListener從未被稱爲

我有什麼企圖

XML

<CheckBox 
    android:onCheckedChanged="@{(v, checked) -> handler.onCheckedChanged(checked)}" 
    ... 
/> 

<variable 
    name="handler" 
    type="com.example.tiago.demo.Search.Adapter.Adapter"/> 

Adapter.java(com.example.tiago.demo.Search.Adapter

public void onCheckedChanged(boolean isCheck){ 
    Log.d("adapter","Is checked: ".concat(String.valueOf(isCheck))); 
} 

我在論壇上和這裏閱讀了類似的帖子,但沒有一篇適合我,這是唯一讓我編譯沒有問題的文章,但是當我點擊複選框時,沒有任何日誌消息。

注意

  • 我得到一個錯誤在這行android:onCheckedChanged未知屬性(即我看到使用onCheckedChanged不知道的所有例子,爲什麼即時得到這個消息)
  • onCheckedChanged顏色是黃色的唯一的地方我叫這是從xml
+0

您是否從適配器或活動設置了處理程序? –

+0

你是什麼意思?,我有'onCheckedChanged'這只是一個方法,我有它在adaper內我沒有它的活動。 –

+3

是的,但是從適配器綁定中,您需要使用setHandler()來設置處理程序變量。你可以在你使用綁定的地方發佈你的適配器代碼嗎? –

回答

1

我能夠解決我的問題,我沒有約束變量愚蠢的錯誤

+3

你是怎麼做到的? –