2016年01月21日


今天要爲安卓應用的某個模塊添加“打開藍牙”的選項菜單,準備放在頂部標題欄中,menu文件夾中的xml文件都準備好了,但運行的時候標題欄右側卻空空如也,沒有選項菜單的圖標:



通過打印字符串測試發現,其實 Fragment 中的 onCreateOptionsMenu() 方法並沒有執行,這是怎麼回事?爲什麼其他模塊中的onCreateOptionsMenu() 方法卻可以正常執行?

[java] view plain copy
  1. @Override  
  2.     public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {  
  3.         inflater.inflate(R.menu.sample_detect_options_menu, menu);  
  4.         System.out.println("選項菜單佈置完成");  
  5.     }  

LogCat 沒有輸出打印信息,該方法沒執行。

百度之後,找到了問題,原來是沒有調用 setHasOptionsMenu(true) 。


引用自:http://pizzanicky.blog.163.com/blog/static/6926633820137814815884/

在onCreate() 方法中加入 setHasOptionsMenu(true) :

[java] view plain copy
 在CODE上查看代碼片派生到我的代碼片
  1. @Override  
  2.     public void onCreate(Bundle savedInstanceState) {  
  3.         super.onCreate(savedInstanceState);  
  4.         setHasOptionsMenu(true);  

圖標就能正常顯示了:



因爲有一段時間沒做安卓了,所以複製代碼的時候有些細節遺漏了。


發佈了147 篇原創文章 · 獲贊 19 · 訪問量 11萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章