Android OnBackPressed不';观察编辑文本键时不工作
我有EditText的扩展,在这里我从EditText的键盘收听事件。我需要知道用户何时按任何按钮显示(或不显示)错误。所以我对键(rxbinding2)进行了观察,我得到了任何按下,但当我按下后退按钮时,光标仍然在这个EditText方法中,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
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);
}