Intereting Posts
Поиск текущей позиции в андроиде без GPS Изменение интервала синхронизации учетной записи Android в настройках Почему метод OnResume фрагмента никогда не запускался после отклонения DialogFragment, который был запущен из фрагмента? Переместить макеты, когда отображается мягкая клавиатура? MediaRecorder setVideoSize показывает различное поведение на разных устройствах Ошибка инструментария из-за «java.io.FileNotFoundException» Как и где создавать файл helpl в eclipse с помощью android Как отключить маркер маркера Android Android – Ошибка загрузки gif-файла с использованием класса Movie Как можно создать горизонтальный список прокрутки с эффектом привязки к центру Как использовать функцию только в том случае, если версия 11+ Передача данных от android до телефонной разницы Как получить UTC смещение в секундах в android Создание динамического представления, многократное представление X раз, получение / установка значения для каждой группы Создайте радиальное меню пирога в Android

Ошибка при действии ActionBarSherlock SearchView

Когда я пытаюсь настроить SearchView, как в документации, я получаю эту ошибку при использовании ActionBarSherlock:

FATAL EXCEPTION: main java.lang.ClassCastException: android.widget.SearchView cannot be cast to com.actionbarsherlock.widget.SearchView at MY_PACKAGE.ACTIVITY.onCreateOptionsMenu(MenuDrawerBase.java:181) at android.support.v4.app.Watson.onCreatePanelMenu(Watson.java:45) at com.actionbarsherlock.ActionBarSherlock.callbackCreateOptionsMenu(ActionBarSherlock.java:559) at com.actionbarsherlock.internal.ActionBarSherlockNative.dispatchCreateOptionsMenu(ActionBarSherlockNative.java:60) at com.actionbarsherlock.app.SherlockFragmentActivity.onCreatePanelMenu(SherlockFragmentActivity.java:165) at com.android.internal.policy.impl.PhoneWindow.preparePanel(PhoneWindow.java:393) at com.android.internal.policy.impl.PhoneWindow.invalidatePanelMenu(PhoneWindow.java:747) at com.android.internal.policy.impl.PhoneWindow$1.run(PhoneWindow.java:2913) at android.os.Handler.handleCallback(Handler.java:615) at android.os.Handler.dispatchMessage(Handler.java:92) at android.os.Looper.loop(Looper.java:137) at android.app.ActivityThread.main(ActivityThread.java:4745) at java.lang.reflect.Method.invokeNative(Native Method) at java.lang.reflect.Method.invoke(Method.java:511) at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:786) at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:553) at dalvik.system.NativeStart.main(Native Method) 

Мой код такой же, как в примере:

 import com.actionbarsherlock.view.*; import com.actionbarsherlock.widget.SearchView; ...... @Override public boolean onCreateOptionsMenu(Menu menu) { getSupportMenuInflater().inflate(R.menu.main, menu); SearchManager searchManager = (SearchManager) getSystemService(Context.SEARCH_SERVICE); SearchView searchView = (SearchView)menu.findItem(R.id.action_search).getActionView(); searchView.setSearchableInfo(searchManager.getSearchableInfo(getComponentName())); searchView.setIconifiedByDefault(true); searchView.setSubmitButtonEnabled(true); return true; } 

Не нашел описания этого нигде, так спрашивая вас: что это?
Кстати, если я использую import android.widget.SearchView; Вместо import com.actionbarsherlock.widget.SearchView; Приложение компилирует и работает с API более 11, но мне оно нужно на версии 10.

Извиняюсь, ребята, но это была моя ошибка.
Помните, какой класс вы ссылаетесь в ресурсе xml. В моем случае это было:

 <item android:id="@+id/action_search" android:title="@string/action_search" android:icon="@drawable/action_search_light" android:showAsAction="always|collapseActionView" android:actionViewClass="android.widget.SearchView"/> 

И это вызвало ошибку приведения. Изменен actionViewClass для com.actionbarsherlock.widget.SearchView и получил именно то, что ожидало!

Измените файл option_menu.xml на

 <menu xmlns:android="http://schemas.android.com/apk/res/android"> <item android:id="@+id/search" android:title="@string/menu_search" android:icon="@drawable/ic_menu_search" android:showAsAction="collapseActionView|ifRoom" android:actionViewClass="com.actionbarsherlock.widget.SearchView" /> </menu>