コトリンは初めてです。フラグメントを作成し、View.OnClickListener
とCheckBox.OnCheckedChangeListener
を実装しました。 View.OnClickListener
は期待どおりに動作しますが、CheckBox.OnCheckedChangeListener
のUnresloved参照を示します。
コードは以下です
class LoginFragment : Fragment(), View.OnClickListener, CheckBox.OnCheckedChangeListener {
override fun onClick(view: View?) {
}
}
CheckBox.OnCheckedChangeListener
..を実装するにはどうすればよいですか?前もって感謝します
次のようにCheckBox.OnCheckedChangeListenerを使用します。
checkBox.setOnCheckedChangeListener { buttonView, isChecked ->
Toast.makeText(this,isChecked.toString(),Toast.LENGTH_SHORT).show()
}
ここで、checkBox
はCheckBox IDです。
var checkBox:CheckBox = CheckBox(context)
checkBox.setOnCheckedChangeListener { buttonView, isChecked ->
if (isChecked) {
//Do Whatever you want in isChecked
}
}
CheckBox.OnClickListener
は既存のインターフェースではありません。 CheckBox
は View
を継承するため、リスナーをCheckBox
に割り当てるには、その setOnClickListener
メソッド、 View.OnClickListener
。
同じFragment
でこれらのイベントの両方を処理する場合は、CheckBox
メソッドのパラメーターを使用して、View
と他のonClick
を区別する必要があります。
または、View
自体ではなく、Fragment
sのリスナーとしてラムダを使用することもできます。
checkbox.setOnClickListener { view ->
// handle clicks here
}
他の回答で述べたように setOnCheckedChangeListener
を使用することも、CheckBox
のオプションです。