If you are using Appcompat v7, there is a way to do this without using reflection:
Declare the following style and configure only those properties that you need to configure, delete the rest (so that they are not used from the parent style):
<style name="Widget.AppCompat.SearchView.CustomSearchView" parent="@style/Widget.AppCompat.SearchView">
<item name="layout">@layout/abc_search_view</item>
<item name="queryBackground">@drawable/abc_textfield_search_material</item>
<item name="submitBackground">@drawable/abc_textfield_search_material</item>
<item name="closeIcon">@drawable/abc_ic_clear_mtrl_alpha</item>
<item name="goIcon">@drawable/abc_ic_go_search_api_mtrl_alpha</item>
<item name="voiceIcon">@drawable/abc_ic_voice_search_api_mtrl_alpha</item>
<item name="commitIcon">@drawable/abc_ic_commit_search_api_mtrl_alpha</item>
<item name="suggestionRowLayout">@layout/abc_search_dropdown_item_icons_2line</item>
<item name="searchIcon">@drawable/ic_action_search</item>
</style>
Now in your topic use the same property:
<item name="searchViewStyle">@style/Widget.AppCompat.SearchView.Bonial</item>
Of course, your theme should inherit from one of the AppCompat themes, in my case it was something like this:
<style name="Theme.MyActionBarActivity" parent="@style/Theme.AppCompat.Light">
ActionBarActivity "" . .
, - , AppCompat v7:
http://www.jayway.com/2014/06/02/android-theming-the-actionbar/