1

チェック状態を変更するがいくつかMaterialButtonあります (トグル グループのシナリオで)。

MaterialButton私の計画は、 sを介して Checked ステータスをリッスンすることですaddOnCheckedChangeListener

しかし、いくつかの条件が発生したときにリスナーを削除する必要があります。ラムダからリスナー(オブジェクト)を取得するにはどうすればよいですか(そしてそれをonCheckedChangeListener値に入れます)?


   var onCheckedChangeListener: MaterialButton.OnCheckedChangeListener?=null
   
...


   myMaterialButton?.addOnCheckedChangeListener { button, isChecked ->
                    Log.i(TAG, "onViewCreated: button = $button, isChecked = $isChecked")
                    
                    if(button.isChecked)
                    {
                       //Use some variables which are reachable here 
                       //Do som work  
                    }
                    else
                    {
                        //Use some variables which are reachable here
                        //Do some other work
                    }

                }

...                

//Some condition prior to this causes me to remove the listener by using 
//removeOnCheckedChangeListener, but how do I get the onCheckedChangeListener from my 
//lambda above which I need to remove ?
                
    myMaterialButton?.removeOnCheckedChangeListener(onCheckedChangeListener)



解決策は確かに簡単ですが、明確な答えは見つかりません。

4

1 に答える 1