我在Action Bar的Android 2.2中实现了简单的搜索框。现在我想添加自动完成我的搜索框。我想显示来自我服务器的提示,例如:
等
我从搜索框接收文本并将其发送到我的服务器。服务器响应数据,但我不知道如何在搜索框下方实现列表。
我想在不使用Sherlock的情况下实现它,但它应该适用于Android 2.2。
我的代码:
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;
}
这是可以工作的函数,但是如何更改它以显示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);
}
任何人都可以帮助我吗?