7

В настоящее время у меня есть приложение в игровом магазине для планшетов и смартфонов с Android 3.0+ (http://tinyurl.com/cnejnjs). Чтобы обратиться к большему числу пользователей, я изучаю, как приложение работает на большом количестве устройств.Android: Виджет поиска ActionBarSherlock

Я знаю ActionBar Sherlock, и это, похоже, делает почти все, что я хочу. Одна вещь, которую она не предлагает, - это Search Widget, которую я использую в текущем приложении.

Есть ли способ иметь окно поиска на панели действий, которое обновляет текущий фрагмент списка на экране аналогично тому, как работает виджет поиска по умолчанию?

ответ

19

Виджет поиска - это просто расширяемый элемент действия. Вы можете создать свой собственный очень легко, используя EditText в качестве расширенного макета. Вы можете увидеть это в примере «Складной элемент действия» из Feature Demos (хотя это всего лишь очень простой пример).

Вы также можете использовать встроенный виджет на Honeycomb и выше из библиотеки совместимости:

Context context = getSupportActionBar().getThemedContext(); 
View searchView = SearchViewCompat.newSearchView(context); 
if (searchView != null) { 
    //Use native implementation 
} else { 
    //Use simple compatibility implementation 
} 

Поддержка реализации совместим с 99% также on the roadmap.

+1

Я попробовал Складной Демонстрационный пункт, но я не знаю, как получить ссылку на EditText. – petrnohejl

+5

Вы либо раздуваете макет кода и вызываете 'findViewById', либо указываете макет в меню XML, а затем вызываете' getActionView(). FindViewById (...) ' –

+0

+1 Работает блестяще, спасибо jake – Naruto