我正在使用一个实现AutoCompleteTextView
其中建议是从 webapi 获取并根据用户输入显示的。我正在使用改造客户端进行网络连接。我有两个疑问。
1)我不希望为每个键入的字符发送请求。仅当用户按住 5 秒时才发送请求。我怎样才能在我的AutoCompleteTextView
执行。
2)我使用 observable 进行响应,如果客户端相继发送两个请求,那么 observable 如何处理响应,以便仅在客户端处理最后一个响应。
我现在无法发布我的代码,但是如果出现问题我会发布它。
为了等待发送请求,您可以使用 TextWatcher 的 onTextChanged 方法。
每次更改文本时,您都可以使用系统方法 System.currentTimeMillis 更新变量,例如 timePressed。更新后,您可以检查当前系统时间距上次更改文本是否超过一定时间(例如5000ms)。如果是这样,请调用发送 API 请求的方法。
请参阅以下资源以获得更多指导:
文本观察器 onTextChanged https://developer.android.com/reference/android/text/TextWatcher.html#onTextChanged(java.lang.CharSequence,%20int,%20int,%20int)
当前时间毫秒 https://docs.oracle.com/javase/7/docs/api/java/lang/System.html#currentTimeMillis()
类似的问题在这里 https://stackoverflow.com/questions/20761113/autocompletion-delay
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)