1

「A」のテキストがankoで変更されたとき、「A」からテキストを取得するeditText「B」が欲しい

そこで、Rxandroidで2つの編集テキスト値を取得する関数を作成しました

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)
   }

しかし、実行すると、「get前にプロパティ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 を nullable に変更すると、エラー メッセージは表示されませんが、addTextinB 関数が機能しません

最後にaddTextinBを変更しましたが、すべて問題ありません

fun addTextinB(v: EditText ) {
  RxTextView.afterTextChangeEvents(v)
            .debounce(50, TimeUnit.MILLISECONDS)
            .observeOn(AndroidSchedulers.mainThread())
            .subscribe { tvChangeEvent ->
                B.setText(tvChangeEvent.view().text)
}

2つのパラメーターを取得する方法があるのだろうか。

4

0 に答える 0