Две аналогичные конструкции кода, но одна не работает - PullRequest
0 голосов
/ 25 июня 2019

Ниже приведены два блока кода, которые по сути должны делать то же самое.Но второй не выполняет onEditorAction, в то время как первый выполняет.Чем отличается второй вариант от того, что мешает ему выполнить код?ПРИМЕЧАНИЕ. В коде присутствует только один из них, а не оба.

// This one works    
this.setOnEditorActionListener { v, actionId, event ->
        if(actionId == EditorInfo.IME_ACTION_SEARCH){
            mOnRunSearchCallback()
            true
        } else {
            false
        }
    }

// This one does not work
    this.setOnEditorActionListener(object : TextView.OnEditorActionListener {
        override fun onEditorAction(v: TextView, actionId: Int, event: KeyEvent): Boolean {
            if (actionId == EditorInfo.IME_ACTION_SEARCH) {
                mOnRunSearchCallback()
                return true
            }
            return false
        }
})

1 Ответ

1 голос
/ 25 июня 2019

Измените второй пример с помощью этого

this.setOnEditorActionListener(object : TextView.OnEditorActionListener {
      override fun onEditorAction(v: TextView?, actionId: Int, event: KeyEvent?): Boolean {
             return true;
      }
 })

По сути, у вас неверный тип аргумента для v, а для события v & event допускаются значения NULL.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...