У меня есть панель действий с виджем поиска в моем приложении ICS. Я хочу, чтобы пользователь мог искать некоторые материалы, которые поставлялись с приложением. Поэтому я хочу использовать виджет поиска, отображая список результатов, который обновляется, когда пользователь вводит новый символ (такие же функции, как в Play Маркете). Я применил SearchView.OnQueryTextListener
в своей деятельности и реализовал два метода: onQueryTextChange(String newText)
и onQueryTextSubmit(String query)
. В onQueryTextChange
Я вызываю свою службу, которая возвращает значения для типизированного предложения. Но у меня нет плана, как отобразить список предложений. Я читал статьи на developer.android.com, но насколько я понимаю, это в основном для старой реализации поиска (< Honeycomb). В примерах API виджета поиска предложены приложения, установленные в системе, обслуживаемые SearchManager
. Я не нашел учебник или пример, который охватывает эту тему (пользовательские предложения в виджетах поиска), кто-нибудь знает что-то вроде этого?Пользовательские предложения в Search Widget (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, добавил метаданные и добавил моего провайдера. Но я не знаю, как получить мои ценности в Провайдере контента и отобразить их в качестве предложений.
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
сделал и найти решение? если да, то, пожалуйста, поделитесь мной –