使用rxAndroid初始化anko值

时间:2016-07-20 07:10:08

标签: android kotlin anko

我希望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)
}

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

0 个答案:

没有答案