1. 程式人生 > >android之onCreateOptionsMenu失效,按選單鍵無反應

android之onCreateOptionsMenu失效,按選單鍵無反應

做點名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