自动完成过滤仅在提示时执行

时间:2018-07-19 17:40:18

标签: android

下午好,

我正在为我的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);

}

非常感谢!

0 个答案:

没有答案