2013-01-07 126 views
2

我使用ActionBarShellock 4.2。我認爲OnCloseListener()會在我點擊關閉按鈕時被調用,但是當我做到時沒有響應。SearchView:無法捕捉關閉事件

mSearchView.setOnCloseListener(new OnCloseListener() { 
     @Override 
     public boolean onClose() { 
      Toast.makeText(mContext, "OnCloseListener", 1000).show(); 
      return false; 
     } 
    }); 

我試着調用getChildAt(index)來得到closebutton。然後我認爲這是不安全的,因爲SearchView不是我自己的代碼。那麼,我如何捕捉關閉事件呢?我做錯了嗎?
在此先感謝。

enter image description here

+0

你問了兩個完全不相關的問題於一身。請每個線程一個。 (您可以發佈其中一個問題的第二個主題。)而且您應該提供更多的細節,因爲您沒有真正解釋過您的問題。 – Eric

+0

@Eric抱歉。我會把它正確 – blackdog

+0

@Eric完成。我解釋清楚了嗎? tks – blackdog

回答

3

只要讓你的菜單項,然後setOnActionExpandListener。然後重寫unimplents方法。

@Override 
public boolean onMenuItemActionExpand(MenuItem item) { 

    return true; 
} 

@Override 
public boolean onMenuItemActionCollapse(MenuItem item) { 

    //do something on close 
    // you must return true 
    return true; 
} 

哈克做 好運

+0

blackdog遇到的問題影響了我[Android v4.1(API 16)和v4.2(API 17)](https://developer.android.com/guide/topics/manifest/uses- SDK-element.html#ApiLevels)。這是一個非ActionBarSherlock項目,所以可以安全地說,這種奇怪現象發生在今天所有Android版本中。但無論如何,您的修補程序絕對爲我工作,謝謝! –