我的ICS應用程序中有一個帶有搜索小部件的操作欄。我希望用戶可以搜索應用程序附帶的一些內容。因此,我想使用搜索小部件,顯示一個結果列表,當用戶輸入新字符(類似Play商店的功能)時,它會更新自身。我在我的活動中實施了SearchView.OnQueryTextListener
,並實施了兩種方法onQueryTextChange(String newText)
和onQueryTextSubmit(String query)
。在onQueryTextChange
我打電話給我的服務,返回鍵入建議的值。但我沒有計劃,如何顯示建議列表。我閱讀developer.android.com的文章,但據我瞭解它主要是針對舊的搜索實現(< Honeycomb)。在搜索小部件API示例中,建議是安裝在系統上的應用程序,由SearchManager
提供服務。我沒有找到涵蓋此主題的教程或示例(搜索小部件中的自定義建議),是否有人知道這樣的事情?搜索小部件中的自定義建議(Android ICS)
@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添加了一個Search Intent,添加元數據並添加了我的提供者。但我不知道如何將我的價值觀提供給內容提供者並將它們顯示爲建議。
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);
}
}
BR,
mybecks
沒有ü找到解決辦法嗎?如果是的話,請與我分享 –