2015-02-05 12 views
0

Я программно создаю пользовательский вид, расширяя AppCompat SearchView. Как я могу ссылаться на этот класс в моем XML? Я не могу использовать полное имя, потому что я использую разные вкусы продукта с градиентом с разными именами пакетов. В частности, app:actionViewClass=".views.EventSearchView" вызывает ClassNotFoundExceptionЯ создал пользовательский вид подкласса SearchView. Как мне теперь ссылаться на XML?

<menu xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:app="http://schemas.android.com/apk/res-auto" 
    xmlns:tools="http://schemas.android.com/tools" 
    tools:context=".activities.MainActivity"> 
    <item 
     android:id="@+id/action_search" 
     android:title="@string/action_search" 
     android:icon="@drawable/ic_action_search" 
     android:orderInCategory="99" 
     app:showAsAction="ifRoom|collapseActionView" 
     app:actionViewClass=".views.EventSearchView" 
     /> 
    <item 
     android:id="@+id/action_settings" 
     android:title="@string/action_settings" 
     android:orderInCategory="100" 
     app:showAsAction="never" /> 
</menu> 
+0

попробуйте использовать имя класса с полным именем пакета 'app: actionViewClass =" xxxxx.xxxx.views.EventSearchView "' –

+0

Я пробовал это. Но разные сборки моего приложения имеют разные имена пакетов из-за разновидностей продуктов/вариантов сборки gradle. Как я могу это исправить? – ZakTaccardi

+0

Показать полный журнал, который получает при использовании 'app: actionViewClass =". Views.EventSearchView "' –

ответ

1

полное название пакета и xmlns:app="http://schemas.android.com/apk/res-auto" имен сделал трюк. У меня, должно быть, была опечатка.

Смежные вопросы