我在操作栏上的 Android 2.2 中实现了简单的搜索框。现在我想添加自动完成做我的搜索框。我想从我的服务器显示提示,例如:
- 用户写“它”
- 我从盒子中收到“它”并将其发送到我的服务器
- 服务器响应:“Item1”、“Item12”、“Item2”
- 应用程序向用户显示“Item1”、“Item12”、“Item2” - 这里有问题
- 用户写“Item1”
- 服务器响应“Item1”、“Item12”
等等
我从搜索框中接收文本并将其发送到我的服务器。服务器响应数据,但我不知道如何简单地在搜索框下方实现列表。
我想在不使用 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);
}
谁能帮我 ?