I implemented simple search box in my Android 2.2 on Action Bar. Now I'd like to add auto complete do my search box. I'd like to display prompt from my server, for example:
- User write "It"
- I receive "It" from box and send it to my server
- Server response: "Item1", "Item12", "Item2"
- App show the user "Item1", "Item12", "Item2" - problem here
- user write "Item1"
- Server response "Item1", "Item12"
etc.
I receive text from search box and send it to my server. Server response data but I don't know how can i simply implement list below my search box.
I'd like to implement it without using Sherlock but it should work on Android 2.2.
My code:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.main_activity_actions, menu);
MenuItem searchItem = menu.findItem(R.id.action_search);
mSearchView = (SearchView) MenuItemCompat.getActionView(searchItem);
setupSearchView(searchItem);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onQueryTextChange(String arg0) {
// 1. get text from search box and send to my server
// 2. my server response and sent data
// 3. response from server should be display below search box
Log.d("onQueryTextChange", arg0);
return false;
}
@Override
public boolean onQueryTextSubmit(String arg0) {
Log.d("onQueryTextSubmit", arg0);
return false;
}
Here is the function that work but how can I change it to show results from onQueryTextChange() ?
private void setupSearchView(MenuItem searchItem) {
Log.d("setupSearchView", "enter");
if (isAlwaysExpanded()) {
mSearchView.setIconifiedByDefault(false);
} else {
searchItem.setShowAsActionFlags(MenuItem.SHOW_AS_ACTION_IF_ROOM
| MenuItem.SHOW_AS_ACTION_COLLAPSE_ACTION_VIEW);
}
SearchManager searchManager = (SearchManager)getSystemService(Context.SEARCH_SERVICE);
if (searchManager != null) {
List<SearchableInfo> searchables =searchManager.getSearchablesInGlobalSearch();
SearchableInfo info =searchManager.getSearchableInfo(getComponentName());
for (SearchableInfo inf : searchables) {
if (inf.getSuggestAuthority() != null
&& inf.getSuggestAuthority().startsWith("applications")){
info = inf;
}
}
mSearchView.setSearchableInfo(info);
}
mSearchView.setOnQueryTextListener(this);
}
Can anyone help me ?