2013-02-28 24 views
2

我有一個搜索結果頁面Activity在操作欄中具有SearchView小部件。在onCreateOptionsMenu(),我會自動展開,並顯示如下查詢:在不添加backstack的情況下展開SearchActionItem

@Override 
public boolean onCreateOptionsMenu(Menu menu) { 
    getMenuInflater().inflate(R.menu.search_menu, menu); 
    MenuItem searchMenuItem = (MenuItem) menu.findItem(R.id.menu_search); 
    SearchView searchView = (SearchView)searchMenuItem.getActionView(); 
    searchView.setOnQueryTextListener(this); 
    searchMenuItem.expandActionView(); // expand the search item 
    searchView.setQuery(query, false); // hide the keyboard 
    searchView.clearFocus(); 
    return true; 
} 

的主頁按鈕被設置這樣的:

@Override 
public boolean onOptionsItemSelected(MenuItem item) { 
    switch (item.getItemId()) { 
    case android.R.id.home: 
     finish(); 
     break; 
    default: 
     break; 
    } 
    return super.onOptionsItemSelected(item); 
} 

但是當用戶點擊後退或向上按鈕時,搜索首先關閉,然後再次按下關閉活動。我如何強制活動立即結束?

回答

2

一兩件事你可以做的是finish()Activity只要SearchView通過實施倒塌的OnActionExpandListener

searchMenuItem.setOnActionExpandListener(new OnActionExpandListener() { 
    @Override 
    public boolean onMenuItemActionCollapse(MenuItem item) { 
    finish(); 
    return true;  
    } 
    @Override 
    public boolean onMenuItemActionExpand(MenuItem item) { 
    return true;  
    } 
}); 
+0

完美 - 感謝這麼多! – bkurzius 2013-02-28 23:20:57

+0

@bkurzius不客氣:-) – 2013-02-28 23:24:33

+0

@ A - C bkurzius的一些問題,但...當我添加搜索項onaction擴展偵聽器,活動關閉立即。 – fawwaz 2014-06-23 04:15:54

相關問題