@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;
}