Kau*_*pal 2 java android event-handling textwatcher
我不得不使用EditTexts重新创建AutoCompleteTextViews的功能(出于不同的原因*,这可能是另一个问题,但我现在正走这条路).
每当EditText上的Text发生更改时,我都会通过发出api调用来完成所有功能.我通过使用TextWatcher(覆盖afterTextChanged方法)来完成此操作.
有没有办法可以控制,监听器触发调用的方式?
这是我的用例:
我正在寻找加州.
我查了一下.长度为3然后开始发射呼叫.所以当前发送的API调用数= 8
如果我收到新的文字更改,有没有办法取消已解雇的活动?因此,当用户键入加利福尼亚时,我会等到没有输入新文本的间隙,然后激活对我的API的调用?
它不一定非常准确.这里和那里的额外事件是完全可以接受的.我希望将从8点发射的事件数量减少到至少3点.
我想在不同的列表视图中显示自动完成结果,而不是自动完成文本视图旁边的弹出窗口.
尝试按照TextWatcher:
TextWatcher t = new TextWatcher() {
long lastChange = 0;
@Override
public void onTextChanged(CharSequence s, int start, int before,
int count) {
// TODO Auto-generated method stub
if (s.length() > 3) {
new Handler().postDelayed(new Runnable() {
public void run() {
if (System.currentTimeMillis() - lastChange >= 300) {
//send request
}
}
}, 300);
lastChange = System.currentTimeMillis();
}
}
@Override
public void beforeTextChanged(CharSequence s, int start, int count,
int after) {
// TODO Auto-generated method stub
}
@Override
public void afterTextChanged(Editable s) {
// TODO Auto-generated method stub
}
};
Run Code Online (Sandbox Code Playgroud)