我希望editText'B'在使用anko更改'A'文字时从'A'获取文字
所以我使用Rxandroid
使函数得到两个编辑文本值val A = editText {
textChangedListener {
addTextinB(this@editText,B)
}
}
val B = editText {
hint = "should be changed "
}
fun addTextinB(v: EditText, v2:EditText) {
RxTextView.afterTextChangeEvents(v)
.debounce(50, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe { tvChangeEvent ->
v2.setText(tvChangeEvent.view().text)
}
但是当我跑步时,我看到“属性B应该在获得之前初始化” 我认为B应该在调用addTextinB之前初始化,所以我改变了。
var A by Delegates.notNull<EditText>()
var B by Delegates.notNull<EditText>()
override fun onCreateView(){
//anko Code here
...
A=editText {...}
B=editText {...}
}
但又失败了。
当我改变A时,B可以为空, 没有错误消息,但addTextinB函数不起作用
最后我改变了addTextinB,并且每一个都没问题
fun addTextinB(v: EditText ) {
RxTextView.afterTextChangeEvents(v)
.debounce(50, TimeUnit.MILLISECONDS)
.observeOn(AndroidSchedulers.mainThread())
.subscribe { tvChangeEvent ->
B.setText(tvChangeEvent.view().text)
}
我想知道有办法获得两个参数。