Android OnBackPressed不';观察编辑文本键时不工作

Android OnBackPressed不';观察编辑文本键时不工作,android,kotlin,rx-android,rx-kotlin,rx-binding,Android,Kotlin,Rx Android,Rx Kotlin,Rx Binding,我有EditText的扩展,在这里我从EditText的键盘收听事件。我需要知道用户何时按任何按钮显示(或不显示)错误。所以我对键(rxbinding2)进行了观察,我得到了任何按下,但当我按下后退按钮时,光标仍然在这个EditText方法中,onBackPressed不起作用。 如何过滤反压 fun EditText.changeWithFormatting(formatter: (String) -> String): Observable<String> { re

我有EditText的扩展,在这里我从EditText的键盘收听事件。我需要知道用户何时按任何按钮显示(或不显示)错误。所以我对键(rxbinding2)进行了观察,我得到了任何按下,但当我按下后退按钮时,光标仍然在这个EditText方法中,onBackPressed不起作用。 如何过滤反压

fun EditText.changeWithFormatting(formatter: (String) -> String): Observable<String> {
    return Observable.merge(
            afterTextChangeEvents()
                    .map { editableText },
            keys()
                    .filter { it.action == KeyEvent.ACTION_UP }
                    .map { editableText }
    )
            .map { changeText(formatter(it.toString())) }
}
fun EditText.changeWithFormatting(格式化程序:(字符串)->字符串):可观察{
返回可观察。合并(
PostExtChangeEvents()
.map{editableText},
钥匙()
.filter{it.action==KeyEvent.action\u UP}
.map{editableText}
)
.map{changeText(格式化程序(it.toString())}
}

只需监听按键事件。这应该在它交给UI元素之前触发。super会将其传递给父级,使其进入正常流程。我不记得它的返回值是真是假,但我认为这对我来说是真的

    @Override
    public boolean onKeyDown(int keyCode, KeyEvent event) 
   {
        if ((keyCode == KeyEvent.KEYCODE_BACK)) 
        {
            onBackPressed();
            return true; 
        }
        return super.onKeyDown(keyCode, event);
   }