1

当'A'文本用anko改变时,我希望editText'B'从'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)
}

我想知道有没有办法获得两个参数。

4

0 回答 0