3

我在操作栏上的 Android 2.2 中实现了简单的搜索框。现在我想添加自动完成做我的搜索框。我想从我的服务器显示提示,例如:

  1. 用户写“它”
  2. 我从盒子中收到“它”并将其发送到我的服务器
  3. 服务器响应:“Item1”、“Item12”、“Item2”
  4. 应用程序向用户显示“Item1”、“Item12”、“Item2” - 这里有问题
  5. 用户写“Item1”
  6. 服务器响应“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);
    }

谁能帮我 ?

4

0 回答 0