:あなたのためにあなたは、このように使用することができますRxCompoundButtonは、そこにあります。あなたは、あなたのプロジェクトにRxBindingを使用することを許可されていない場合は、カスタムCompoundButton
import com.jakewharton.rxbinding.widget.checkedChanges
class CustomCompoundButton: CompoundButton {
constructor(context: Context): super(context, null)
constructor(context: Context, attrs: AttributeSet?): super(context, attrs, 0)
constructor(context: Context, attrs: AttributeSet, defStyleAttr: Int): super(context, attrs, defStyleAttr, 0)
fun throttledCheckedChanges() {
return this.checkedChanges().debounce(3, TimeUnit.SECONDS)
}
// OR
val throttledCheckedChanges by lazy {
this.checkedChanges().debounce(3, TimeUnit.SECONDS)
}
}
// Use it in your activity/ fragment
customCompoundButton.throttledCheckedChanges().subscribe { /* do sth */ }
// OR
customCompoundButton.throttledCheckedChanges.subscribe { /* do sth */ }
で表現することができます。 Rxラッパーの作成については、CompoundButtonCheckedChangeObservable.javaをご覧ください。
1つのことをクリアするには:debounceがタイムスパンで動作することは分かりますか?デバウンス作業を行うには、コードに応じて3秒以内にスイッチをオンまたはオフにする必要があります。ダミー目的のためにボタンを使用して、それが機能するかどうかを確認してください。 – chandil03
返信ありがとう、はい私はそれを達成するために努力しているものです。 – scottazord
あなたはそれに関連するすべてのコードを投稿できますか?あなたが与えたコードは、あなたがそれを達成しようとしている方法を説明していないからです。カスタムSwtichクラスを作成してから何かをやっているようです。 – chandil03