我正在學習菜單inflater和我所遵循的教程說我們應該在這個函數中返回false。但是,當我回歸真實時,我沒有注意到任何變化或差異。所以問題是:應該返回什麼,對onOptionsItemSelected()是true或false?
- 我應該返回什麼,爲什麼?如果你想正常處理的情況發生,返回false
感謝
我正在學習菜單inflater和我所遵循的教程說我們應該在這個函數中返回false。但是,當我回歸真實時,我沒有注意到任何變化或差異。所以問題是:應該返回什麼,對onOptionsItemSelected()是true或false?
感謝
。否則,返回true。
請參閱Documentation。
默認情況下,當您返回false時,Android會調用與該項目關聯的Runnable或運行您可以使用MenuItem上的setIntent(...)
設置的Intent。如果你不希望發生這種情況,你應該返回true。
假設您按如下方式創建MenuItem。
MenuItem menu1 = new MenuItem(this);
menu1.setIntent(myIntent);
這裏myIntent
是你想要做的,當菜單項被點擊。例如:假設您的菜單項啓動GMail應用程序發送一封電子郵件,並在您的活動文本視圖上顯示文本。
在你onOptionsItemSelected()
回調,您可以檢查文本瀏覽的價值,並返回false如果文本視圖不爲空(你必須在文本框中的東西,你能火Intent
到Gmail帳戶),否則顯示一條消息方框中寫着「請先輸入消息」並返回true,這樣Android就不會觸發Intent。
public boolean onOptionsItemSelected (MenuItem item) {
if (textView.getText().trim().equals("")){
// show the message dialog
return true;
}
else {
// we have some message. We can let android know that
// it is safe to fire the intent.
return false;
}
}
希望這會有所幫助... 快樂編碼。
你能否詳細說明「正常處理」? – 2012-08-12 10:43:03
默認情況下,當您返回false時,Android會調用與該項目關聯的'Runnable'或運行'Intent',您可以使用MenuItem上的setIntent(...)設置它。如果你不希望發生這種情況,你應該返回true。 – Madushan 2012-08-12 10:46:55
你能用一點代碼來詳細說明嗎?我是一個小菜,所以我很難理解 – 2012-08-12 10:53:04
,否則返回false
http://stackoverflow.com/a/5719356/1300995 – biegleux 2012-08-12 10:25:32