如何改变解雇(家)夏洛克操作栏搜索查看按钮? [英] How to change dismiss (home) button of searchview in Sherlock action bar?

查看:391
本文介绍了如何改变解雇(家)夏洛克操作栏搜索查看按钮?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

当您在搜索查看模式下的操作栏进入,home键更改为清单安卓图标绘制的某些原因。有没有一种方法,以保持其维持不变或改回了android:标志绘制

下面是我在做什么:

  @覆盖
公共无效onCreateOptionsMenu(最后菜单菜单,MenuInflater充气)
{
    。getSherlockActivity()getSupportMenuInflater()膨胀(R.menu.places_menu,菜单);

    SearchManager searchManager =(SearchManager)getSherlockActivity()getSystemService(Context.SEARCH_SERVICE)。
    最后搜索查看搜索查看=(搜索查看)menu.findItem(R.id.item_menu_search).getActionView();

    SearchView.OnQueryTextListener queryTextListener =新SearchView.OnQueryTextListener()
    {
        公共布尔onQueryTextChange(字符串newText)
        {
            //这是你的适配器将被过滤掉
            。mAdapter.getFilter()过滤器(newText);
            返回true;
        }

        公共布尔onQueryTextSubmit(查询字符串)
        {
            //这是你的适配器将被过滤掉
            。mAdapter.getFilter()过滤器(查询);
            返回true;
        }
    };

    如果(NULL!=搜索查看)
    {
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getSherlockActivity().getComponentName()));
        sea​​rchView.setIconifiedByDefault(假);
        sea​​rchView.setOnQueryTextListener(queryTextListener);

        //关闭搜索时,软键盘DISSMISSES
        sea​​rchView.setOnQueryTextFocusChangeListener(新View.OnFocusChangeListener(){
            @覆盖
            公共无效onFocusChange(查看视图,布尔queryTextFocused){
                如果(!queryTextFocused){
                    menu.findItem(R.id.item_menu_search).collapseActionView();
                    sea​​rchView.setQuery(,假);
                }
            }
        });
    }

    super.onCreateOptionsMenu(菜单,充气);
}
 

解决方案

这似乎通过调用的setIcon()的标志就可以了。

 动作条动作条= getActionBar();
actionBar.setLogo(R.drawable.ab_logo);
actionBar.setIcon(R.drawable.ab_logo);
 

When you enter in searchview mode with the action bar, the home button is changed to the manifest android:icon drawable for some reason. Is there a way to keep it unchanged or to change it back to the android:logo drawable?

Here's what I'm doing:

@Override
public void onCreateOptionsMenu(final Menu menu, MenuInflater inflater) 
{
    getSherlockActivity().getSupportMenuInflater().inflate(R.menu.places_menu, menu);

    SearchManager searchManager = (SearchManager) getSherlockActivity().getSystemService(Context.SEARCH_SERVICE);
    final SearchView searchView = (SearchView) menu.findItem(R.id.item_menu_search).getActionView();

    SearchView.OnQueryTextListener queryTextListener = new SearchView.OnQueryTextListener() 
    {
        public boolean onQueryTextChange(String newText) 
        {
            // this is your adapter that will be filtered
            mAdapter.getFilter().filter(newText);
            return true;
        }

        public boolean onQueryTextSubmit(String query) 
        {
            // this is your adapter that will be filtered
            mAdapter.getFilter().filter(query);
            return true;
        }
    };

    if (null != searchView )
    {
        searchView.setSearchableInfo(searchManager.getSearchableInfo(getSherlockActivity().getComponentName()));
        searchView.setIconifiedByDefault(false);  
        searchView.setOnQueryTextListener(queryTextListener);

        // CLOSE SEARCH WHEN SOFT KEYBOARD DISSMISSES
        searchView.setOnQueryTextFocusChangeListener(new View.OnFocusChangeListener() {
            @Override
            public void onFocusChange(View view, boolean queryTextFocused) {
                if(!queryTextFocused) {
                    menu.findItem(R.id.item_menu_search).collapseActionView();
                    searchView.setQuery("", false);
                }
            }
        });
    }

    super.onCreateOptionsMenu(menu, inflater);
}

解决方案

It seems to be possible by calling setIcon() with the logo.

ActionBar actionBar = getActionBar();
actionBar.setLogo(R.drawable.ab_logo);
actionBar.setIcon(R.drawable.ab_logo);

这篇关于如何改变解雇(家)夏洛克操作栏搜索查看按钮?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆