如何在Sherlock操作栏中更改SearchView的取消(主页)按钮?

4
当您在操作栏中进入搜索视图模式时,由于某种原因,主页按钮将更改为清单文件android:icon可绘制项。是否有方法可以保持不变或将其更改回android:logo可绘制项?
这是我正在做的事情:
@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);
}

1
你尝试过使用action bar的setDisplayOptions(DISPLAY_USE_LOGO)或setDisplayUseLogoEnabled(true)吗? - Andrei
1个回答

4
似乎可以通过使用标志调用setIcon()来实现。
ActionBar actionBar = getActionBar();
actionBar.setLogo(R.drawable.ab_logo);
actionBar.setIcon(R.drawable.ab_logo);

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接