如何在搜索后重置动作栏搜索?

时间:2015-06-20 15:05:27

标签: android android-fragments

我在操作栏菜单中创建了一个操作栏搜索。 好吧,如果我点击屏幕上的任何一个按钮或点击,我试图让它进入正常状态。这是我的代码:

public boolean onCreateOptionsMenu(Menu menu) {
    // Inflate the menu; this adds items to the action bar if it is present.
    getMenuInflater().inflate(R.menu.menu_main, menu);
    final EditText editText = (EditText) menu.findItem(
            R.id.menuSearch).getActionView();

    editText.addTextChangedListener(textWatcher);

    menuItem = menu.findItem(R.id.menuSearch);
    menuItem.setOnActionExpandListener(new MenuItem.OnActionExpandListener() {
        @Override
        public boolean onMenuItemActionCollapse(MenuItem item) {


            menuItem.collapseActionView();

            // Do something when collapsed
            return true; // Return true to collapse action view
        }

        @Override
        public boolean onMenuItemActionExpand(MenuItem item) {
            //editText.clearFocus();


            return true; // Return true to expand action view
        }
    });
    return true;
}

效果很好。但是,它没有进入正常状态。我用过这个功能

            menuItem.collapseActionView();

但是,没用。提前致谢

2 个答案:

答案 0 :(得分:2)

试试这段代码

    menuItem.collapseActionView();

 public boolean onOptionsItemSelected(MenuItem item) {

答案 1 :(得分:1)

框架调用onMenuItemCollapsed()以通知您的代码,搜索视图已折叠。调用" menuItem.collapseActionView()"对那个方法体没有好处。您对collapseActionView()的调用应该在您要强制折叠视图的代码中,例如Go按钮的按键处理程序。