如何在Android中的Action Bar中更改设置徽标?

时间:2014-04-14 07:02:20

标签: android xml menu

我想将Settings徽标更改为Search徽标。我尝试在xml中进行以下更改,但它似乎不起作用。谁能建议我做什么?

我的xml如下:

<menu xmlns:android="http://schemas.android.com/apk/res/android" >

 <item
    android:id="@+id/action_settings"
    android:orderInCategory="100"
    android:showAsAction="never"
    android:icon="@android:drawable/btn_minus"
     android:title="@android:string/search_go"/>

 </menu>

2 个答案:

答案 0 :(得分:0)

如果您使用操作栏

,请使用此选项

<item     
    android:id="@+id/grid_default_search"
    android:icon="@android:drawable/ic_menu_search"
    android:title="search"
    android:showAsAction="always"
    android:actionViewClass="android.widget.SearchView" 
/>

<!-- other items or whatever  -->

在您的活动中

@Override 
    public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
        inflater.inflate(R.menu.grid_default, menu); 
        SearchView searchView = (SearchView)menu.findItem(R.id.grid_default_search).getActionView();
        searchView.setOnQueryTextListener(queryListener);

}

final private OnQueryTextListener queryListener = new OnQueryTextListener() {       

    @Override
    public boolean onQueryTextChange(String newText) {

      //Logic
        return false;
    }

    @Override
    public boolean onQueryTextSubmit(String query) {            
      //Logic
        return false;
    }
};

答案 1 :(得分:0)

1)转到:https://developer.android.com/design/downloads/index.html

2)下载“Action Bar Icon Pack”

3)将ic_action_search放在drawable目录中

4)然后:android:icon="@drawable/ic_action_search"

如果不起作用,请尝试:your_app_name:showAsAction="always"

您可以阅读documentation

  

请注意,上面的showAsAction属性使用自定义命名空间   在标签中定义。使用任何XML时都需要这样做   由支持库定义的属性,因为这些属性可以   旧设备上的Android框架中不存在。所以你必须使用   您自己的命名空间作为由...定义的所有属性的前缀   支持图书馆。