gpt4 book ai didi

java - Android:有什么方法可以识别何时在 edittext 软键盘上按下/松开按键?

转载 作者:太空狗 更新时间:2023-10-29 16:00:59 24 4
gpt4 key购买 nike

我有一个自动完成的 edittext 字段,每次文本更改时都会向服务器发送查询,但是如果用户键入大量文本然后按住“删除”,我不想为每个删除的字符发送查询.解决这个问题的一种方法是在输入字符时缓存所有查询,然后在删除时回放缓存 - 但在我看来这太复杂了。一种更简单的方法是检测 keydown/keyup,然后仅在文本已更改但用户也没有触摸键盘时才发送查询。这让我遇到了如何从软键盘捕捉键盘的困难。

我已经尝试过 ontouchlistener(不触发)和 onkeypressedlistener(也不触发),甚至在 edittext 中覆盖 onKeyPreIme(也不触发)。有办法做到这一点吗?

最佳答案

我解决这个问题的方法是为查询添加延迟,这样它就不会每次都执行。我的代码看起来像这样:

long lastPress = 0l;
@Override
public void onTextChanged(CharSequence s,
int start, int before, int count){
if(System.currentTimeMillis() - lastpress > 500){
lastPress= System.currentTimeMillis();
// insert query here
}
}

希望这对您有所帮助。

关于java - Android:有什么方法可以识别何时在 edittext 软键盘上按下/松开按键?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33259615/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com