3

Android 2.2 の Action Bar にシンプルな検索ボックスを実装しました。ここで、検索ボックスにオートコンプリートを追加したいと思います。サーバーからのプロンプトを表示したいのですが、たとえば次のようになります。

  1. ユーザー書き込み「それ」
  2. ボックスから「It」を受け取り、サーバーに送信します
  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