2015-06-20 56 views
1

我已經在操作欄菜單中創建了一個操作欄搜索。 嗯,我試圖讓它進入正常狀態,如果我點擊去按鈕或點擊屏幕上的任何地方。這裏是我的代碼:如何在搜索後重置操作欄搜索?

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

嘗試

public boolean onOptionsItemSelected(MenuItem item) { 
+0

感謝它的工作在這個代碼

menuItem.collapseActionView(); 

0

該框架調用onMenuItemCollapsed()到通知您的代碼,搜索視圖已被摺疊。對「menuItem.collapseActionView()」的調用在該方法體中不起作用。您對collapseActionView()的調用應位於要強制視圖被摺疊的代碼中,例如Go按鈕的按鍵處理程序。