在Actionbar中更改可搜索图标

时间:2013-11-03 09:22:16

标签: android searchable

我正在为我的应用程序实现搜索,我遇到了这个问题。如何更改“可搜索”的默认放大镜?默认看起来很大而且很脏,我更喜欢使用我用于菜单图标的相同drawable。

Big fugly manifying glass

Searchable Configuration - Android Developer网站中搜索“图标”不会产生任何有用的信息。我还尝试将android:icon(这是Structure标签中的一个选项)添加到我的可搜索定义中,但它无效。

<searchable xmlns:android="http://schemas.android.com/apk/res/android"
    android:hint="@string/search_hint"
    android:icon="@drawable/ic_custom_test"
    android:includeInGlobalSearch="true"
    android:label="@string/search_label"
    android:searchSettingsDescription="@string/settings_description"
    android:searchSuggestAuthority="com.test.provider.SuggestionProvider"
    android:searchSuggestIntentAction="android.intent.action.VIEW"
    android:searchSuggestIntentData="content://com.test.provider.SuggestionProvider/info"
    android:searchSuggestSelection=" ?"
    android:searchSuggestThreshold="1" >
</searchable>

提前感谢您的帮助!

2 个答案:

答案 0 :(得分:0)

实施您自己的搜索视图,从菜单文件夹中的main.xml / activity_main(您的布局文件名)中删除搜索项,然后创建一个新项目和您自己的搜索图标,。,

使用iconfinder.com获取不同的图标。

在您的活动中,在选项方法中,创建一个开关案例,并在您点击此项目时添加功能。,

答案 1 :(得分:0)

public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.main, menu);
       SearchManager localSearchManager1 = (SearchManager)getSystemService("search");
        SearchView localSearchView1 = (SearchView)menu.findItem(R.id.search).getActionView();
        localSearchView1.setSearchableInfo(localSearchManager1.getSearchableInfo(getComponentName()));
        localSearchView1.setIconifiedByDefault(true);
        if (Build.VERSION.SDK_INT >= 11)
        {
         SearchManager localSearchManager2 = (SearchManager)getSystemService("search");
          SearchView localSearchView2 = (SearchView)menu.findItem(R.id.search).getActionView();
          localSearchView2.setSearchableInfo(localSearchManager2.getSearchableInfo(getComponentName()));
          localSearchView2.setIconifiedByDefault(true) ;
        }