Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/184.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 如何为RxBinding.textChanges()提供副作用并保留它';客户端的功能是什么?_Android_Kotlin_Kotlin Extension_Rx Binding_Extension Function - Fatal编程技术网

Android 如何为RxBinding.textChanges()提供副作用并保留它';客户端的功能是什么?

Android 如何为RxBinding.textChanges()提供副作用并保留它';客户端的功能是什么?,android,kotlin,kotlin-extension,rx-binding,extension-function,Android,Kotlin,Kotlin Extension,Rx Binding,Extension Function,假设我正在编写自己的视图类,它表示可编辑字段,并包含EditTexttv\u输入: class EditTextIContemView:LinearLayout{ fun setInputText(文本:字符串?){ 带(电视输入){ setText(文本) setCharsCount(文本?.length?:0) 设置选择(文本?.length?:0) } } 有趣的设置(计数:Int){ tv_chars_count?.text=“$count/$MAX_LENGTH” } } 我想将te

假设我正在编写自己的视图类,它表示可编辑字段,并包含EditTexttv\u输入

class EditTextIContemView:LinearLayout{
fun setInputText(文本:字符串?){
带(电视输入){
setText(文本)
setCharsCount(文本?.length?:0)
设置选择(文本?.length?:0)
}
}
有趣的设置(计数:Int){
tv_chars_count?.text=“$count/$MAX_LENGTH”
}
}
我想将textChanges()委托给该内部EditText tv\u输入,因此我在自定义的EditTextIContemView中编写以下代码:

fun EditTextIconItemView.textChanges()=
tv_input.textChanges().doOnNext{setcharscont(it.length)}
这很好,但现在我希望我的客户机代码实际上跳过初始值,因此在客户机代码中我有:

val et=EditTextIconItemView()
et.textChanges().skipInitialValue().subscribe{…}
这需要我在editTextIContemView中为textChanges()明确指定返回类型:

fun editTextIContemView.textChanges():InitialValueObservable=
tv_input.textChanges().doOnNext{setcharscont(it.length)}
但这不会编译,因为doOnNext返回的可观察值不能转换为InitialValueObservable

但实际上我不希望客户端代码处理该副作用,并在该视图上设置字符计数,这是EditTextIContemView本身的责任。但我仍然希望能够判断客户是否跳过初始值

我怎样才能让它工作

谢谢大家!