geolocation - Android using AutoCompleteTextView with Location suggestions (Using Geocoder and getFromLocationName()) -
i have autocompletetextview want search locations, example: type "vig" , autocompletetextview list shows 5 best results that: "4560 vig", "juan pablo perez..", "the vig 4041...", "vig" example, type "vigo": says right place: "vigo, pontevedra" , can select , put on autocompletetextview.
for now, have working have 1 error:
- the display list showing when delete on character, if not doesn't show, , shows last string result, example: have typed "vigo", , nothing appears, delete "o" , display list shows results "vigo" instead of "vig", typed in autocompletetextview in moment.
i perform search locations in asynctask:
private class searchaddress extends asynctask<string, void, string[]> { @override protected string[] doinbackground(string... params) { //adapter.clear(); string[] addressarray = getstreetlist(query); return addressarray; } @override protected void onpostexecute(string[] addressarray) { if(addressarray == null) toast.maketext(newrouteactivity.this, "no address obtained server", toast.length_short).show(); else{ adapter.clear(); for(string address: addressarray){ adapter.add(address); <------here 2nd error log.d("async", address); } } } @override protected void onpreexecute() {} @override protected void onprogressupdate(void... values) {} }
here autocompletetextview code:
string[] array = {}; adapter = new arrayadapter<string>(this, android.r.layout.simple_spinner_dropdown_item, array);//simple_dropdown_item_1line autofrom.setadapter(adapter); autoto.setadapter(adapter); asyncsearch = new searchaddress(); autofrom.addtextchangedlistener(new textwatcher() { @override public void aftertextchanged(editable s) {} @override public void beforetextchanged(charsequence s, int start, int count, int after) {} @override public void ontextchanged(charsequence s, int start, int before, int count) { if (((autocompletetextview) autofrom).isperformingcompletion()) {return;} if (s.length() < 2) { return; }else{ query = s.tostring(); if (asyncsearch.getstatus().equals(asynctask.status.finished)){ asyncsearch = new searchaddress(); asyncsearch.execute(query); log.d("async", "finish good"); log.d("async", query); }else{ log.d("async", "cancel"); asyncsearch.cancel(false); asyncsearch = new searchaddress(); asyncsearch.execute(query); } return; } } });
i hope enough, getstreetlist() working good, giving results. if need else ask.
thanks in advance!!!
i don't know if going you, i've had problems textwatcher , autocompletetextview. should using filter on adapter , not textwatcher.
a implementation of google places + autocompletetextview google:
https://developers.google.com/places/training/autocomplete-android
Comments
Post a Comment