android之onCreateOptionsMenu失效,按選單鍵無反應
阿新 • • 發佈:2019-01-29
做點名app的時候,由於教師端和學生端UI相似,所以用了一套UI框架,結果修改一番之後,
點選選單鍵無反應,也就是下面的onCreateOptionsMenu不執行了,
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
而通過actionbar的點選卻還是可以喚出選單列表
百思不得其解,最後發現下面這段程式碼,
// 監聽返回鍵,退出程式 public boolean onKeyDown(int keyCode, KeyEvent event) { if (keyCode == KeyEvent.KEYCODE_BACK && event.getRepeatCount() == 0) { wifiHotManager.closeAWifiHot(); this.finish(); return true;//① } return true;//② }
這段程式碼本來是作為退出的,當按倒back鍵的時候退出應用,但是裡面有一個不起眼的地方,把選單鍵給遮蔽了,
也就是②處,在①出的return的作用是把選單鍵的點選事件消費掉,阻止它向上傳遞,
而在②處的return true則把除了back按鍵之外的選單鍵事件也給消費掉了,這樣選單鍵也就無效了,
越來越體會到android中很多return的妙用,可以用來消費掉你不想讓系統知道的訊息。
如果你也遇到這樣的問題,看看有沒有類似的問題。good luck。
作者:jason0539