@Override
protectedvoid onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
requestWindowFeature(Window.FEATURE_INDETERMINATE_PROGRESS);
setContentView(R.layout.activity_main);
this.getActionBar().show();
}
//menu item id
privatestaticfinalint MENU_INFO_ID = Menu.FIRST;
privatestaticfinalint MENU_EXIT_ID = Menu.FIRST + 1;
privatestaticfinal intMENU_REFRESH_ID = Menu.FIRST + 2; //點擊刷新按鈕後重新搜索藍牙設備並添加到已有藍牙設備列表中
private static final int MENU_TEST_ID = Menu.FIRST + 3; //測試按鈕
3. 在activity的onCreate()方法裏面強制屏蔽手機的實體菜單鍵
/*
*強制屏蔽手機實體菜單鍵
*如果不強制屏蔽實體菜單按鍵,那麼在有實體菜單鍵的手機上面,如果actionbar的菜單項顯示不下之後,不會出現overflow按鈕,而是在實體菜單鍵顯示。
*屏蔽之後,action bar放不下後,就顯示三個點的overflow鍵了,放不下的菜單項都在裏面了。
*
*/
//----------------------
try {
ViewConfiguration mconfig = ViewConfiguration.get(this);
java.lang.reflect.Field menuKeyField = ViewConfiguration.class.getDeclaredField("sHasPermanentMenuKey");
if(menuKeyField !=null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(mconfig, false);
}
} catch (Exception ex) {
}
//---------------------
4. 創建菜單鍵並顯示爲action即可。
如果SHOW_AS_ACTION_NEVER就會放入overflow菜單項下
如果SHOW _AS_ACTION_IF_ROOM 在actionbar沒有空間纔會放入overflow菜單下
如果SHOW_AS_ACTION_ALWAYS就會始終顯示在action bar上
//action bar實際上就是以前的option menu菜單
//menu item creation
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
//getMenuInflater().inflate(R.menu.activity_main, menu);
//define menu items
menu.add(0,MENU_INFO_ID,1,this.getResources().getString(R.string.menu_editActivity_menuItem_info))
.setIcon(android.R.drawable.ic_menu_info_details)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
menu.add(0,MENU_EXIT_ID, 2,this.getResources().getString(R.string.menu_editActivity_menuItem_exit))
.setIcon(android.R.drawable.ic_menu_close_clear_cancel)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
menu.add(0,MENU_REFRESH_ID,0,this.getResources().getString(R.string.actionbar_refresh_button))
.setIcon(android.R.drawable.ic_menu_rotate)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS);
menu.add(0,MENU_TEST_ID, 3,"test")
.setIcon(android.R.drawable.ic_dialog_alert)
.setShowAsAction(MenuItem.SHOW_AS_ACTION_NEVER);
return true;
}