Intereting Posts
Как сохранить общие значения предпочтений, даже устройство отключается? Canvas: попытка использования переработанного растрового андроида Не удалось отправить сообщение из java в Unity с помощью UnityPlayer.UnitySendMessage Sugar ORM Нет такого исключения таблицы Java 7/8 в Android? Несколько прядильщиков и onItemSelected В эмуляторе Android можно заметить вибрационные эффекты? Приобретение экземпляра справочной службы Как обрабатывать сообщения обработчика, когда действие / фрагмент приостановлено SnackBar сверху. Это возможно? Метод getLayoutInflater (Bundle) в фрагменте типа не применим для аргументов () Сделать навигационную панель максимально активной анимации активности Изображения, не отображаемые на эмуляторе Android для приложения phonegap / jquerymobile Ошибка: BinderProxy @ 45d459c0 недействителен; Работает ли ваша деятельность? Android NDK: Как обращаться с нажатием клавиши Back в Cocos2dx?

Показать выбор из списка предложений в Android searchview

У меня есть поиск с предложением. Если пользователь выбирает элемент из списка, отправляется новое намерение, и я могу применить свой фильтр, но поиск остается пустым.

Если я обновляю вид поиска в onNewIntent с помощью setQuery (см. Ниже), эффект заключается в том, что выбранный элемент отображается в окне поиска, но список предложений появляется снова. Могу ли я избежать этого и показывать только текущий текст запроса в окне поиска без всплывающего списка предложений?

@Override protected void onNewIntent(Intent intent) { if (Intent.ACTION_SEARCH.equals(intent.getAction())) { final String query = intent.getStringExtra(SearchManager.QUERY); if (!query.equals(searchView.getQuery())) { searchView.setQuery(query, false); // makes the suggestions pop up } applyFilter(query); } } 

Хитрость заключается в замене поведения по умолчанию менеджера поиска с помощью onSubmitListener в представлении поиска и возвращении true из его метода onSuggestionClick, а не вызова setQuery (запроса, false) в обработчике целей:

 @Override public boolean onSuggestionClick(int position) { String suggestion = getSuggestion(position); searchView.setQuery(suggestion, true); // submit query now return true; // replace default search manager behaviour } private String getSuggestion(int position) { Cursor cursor = (Cursor) searchView.getSuggestionsAdapter().getItem( position); String suggest1 = cursor.getString(cursor .getColumnIndex(SearchManager.SUGGEST_COLUMN_TEXT_1)); return suggest1; }