ICS アプリに検索ウィジェット付きのアクション バーがあります。ユーザーがアプリに付属しているものを検索できるようにしたい。したがって、検索ウィジェットを使用して、ユーザーが新しい文字を入力すると更新される結果リストを表示します (Play ストアと同じ機能)。私はSearchView.OnQueryTextListener
自分のアクティビティに実装し、 と の 2 つのメソッドonQueryTextChange(String newText)
を実装しましたonQueryTextSubmit(String query)
。onQueryTextChange
I call my service では、入力された提案の値が返されます。しかし、提案リストをどのように表示するか、私には計画がありません。developer.android.comの記事を読みましたが、私が理解している限り、主に古い検索実装 (< Honeycomb) に関するものです。Search Widget API の例では、システムにインストールされ、提供されるアプリが提案されています。SearchManager
. このトピック (検索ウィジェットのカスタム提案) をカバーするチュートリアルや例が見つかりませんでした。誰かこのようなことを知っていますか?
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.search_menu, menu);
SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE);
SearchView searchView = (SearchView) menu.findItem(R.id.menu_search).getActionView();
searchView.setOnQueryTextListener(this);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onQueryTextChange(String newText) {
Log.i(TAG, "Query = " + newText);
if(newText.length() > 0){
//my suggestion service, returning an arraylist!
}
return false;
}
ContentProvider
から拡張する必要があることを読みましたが、SearchRecentSuggestionsProvider
このプロバイダーの処理方法と作成方法がわかりません。空のコンテンツ プロバイダsearchable.xml
を参照する があります。searchSuggestAuthority
AnroidManifest で、検索インテントを MainActivity に追加し、メタデータを追加して、プロバイダーを追加しました。しかし、自分の値をコンテンツ プロバイダーに取得し、提案として表示する方法がわかりません。
public class SuggentionsProvider extends SearchRecentSuggestionsProvider {
public final static String AUTHORITY = "com.sap.hui.helper.SuggentionsProvider";
public final static int MODE = DATABASE_MODE_QUERIES;
public SuggentionsProvider(){
setupSuggestions(AUTHORITY, MODE);
}
}
ブラジル、
マイベックス