下午好,
我正在为我的android应用中的位置开发自动填充功能。 我正在使用AutoCompleteTextView。我正在使用textwatcher监听textview中的更改:
autocompleteView.addTextChangedListener(new TextWatcher(){
long lastPress = 0l;
...
@Override
public void onTextChanged(CharSequence s, int start, int before, int count){
//do not overkill with a dozen of places requests to route rank
if((System.currentTimeMillis() - lastPress > 1500) & s.length() >=3){
lastPress= System.currentTimeMillis();
"SEND GET PLACES REQUEST TO SERVER"
}
}
...
});
然后,我使用广播接收器收听服务器的响应。我的问题是,当textview上的某些内容发生更改时,就会触发过滤...我希望仅当我从服务器收到新位置时才进行过滤。
广播接收器代码:
private BroadcastReceiver messageFromRouteRankClientManager = new BroadcastReceiver() {
@Override
public void onReceive(Context context, Intent intent) {
Log.e("receiver", "Received message broadcasted from RouteRankClientManager");
adapter.refreshAutoComplete((List<PlacesResponse>) intent.getSerializableExtra(RouteRankClientManager.keys.placesData));
}
};
基本适配器中的refreshAutoComple方法:
synchronized public void refreshAutoComplete(List<PlacesResponse> placesResponse){
this.places.clear();
this.places.addAll(placesResponse);
}
非常感谢!