2016-05-17 24 views
10

質問によると、チェックされた変更リスナをxmlのSwitchボタンにバインドする方法は?onCheckedChageListenerイベントの[スイッチ]ボタンのデータバインディングはどのように実装できますか?

私はリサイクラービューを使用していません。単純なレイアウト。

助けてください。

+0

それを動的に設定すると間違って何? –

+0

ディスクキャッシュを使用して観測可能なフィールドを持つプロジェクトのどこに同じビューモデルを使用できますか? –

答えて

4

あなたは、メソッドを参照してそれを行うことができます:あなたは異なるパラメータを渡す場合

<CheckBox android:onCheckedChanged="@{callback::checkedChangedListener}".../> 

やラムダ式を持つ:

<CheckBox android:onCheckedChanged="@{() -> callback.checked()}".../> 
+6

これは私のために働いていない私は 'Unknown属性android:onCheckedChanged'を取得 –

+0

@TiagoOliveira私はまた、その警告を得ているが、実際に動作するようにアプリを起動した後 – arekolek

+0

@GeorgeMountなぜアプリを使用することはできません:onCheckedChangeListener CheckBoxのsetOnCheckedChangeListenerメソッドを呼び出しますか? – David

13

をラムダ式とSwitch使用:

public void onCheckedChanged(boolean checked) { 
    // implementation  
} 

XMLファイル:

<android.support.v7.widget.SwitchCompat 
    android:onCheckedChanged="@{(switch, checked) -> item.onCheckedChanged(checked)}" 
    ... 
/> 

どこitemあるonCheckedChangeメソッドを実装し、このようなXMLファイルにインポートされたクラス:

<data> 
    <variable 
     name="item" 
     type="yourClass"/> 
</data> 
+0

私たちはカスタムの双方向バインディングを作成して、定型文を減らすことができます –

+0

@AdityaLadwa 'checked'属性を使って何が問題になっていますか?あなたはそれをかなり簡単にバインドすることができます –

関連する問題