版权声明:此博客上带有原创标识的文章、图片、文件等,未经本人允许,不得用于商业用途。网络媒体、传统媒体或个人转载请注明出处和链接,否则属于侵权行为。 https://blog.csdn.net/nny886/article/details/82990868
以设置Enable为例(Visable类似,将Enabled单词替换成Visible就可以实现菜单项的显、隐),上实例代码(附少量必要的说明)。
@Override
public boolean onCreateOptionsMenu(Menu menu) {//只在创建菜单的时候运行一次
super.onCreateOptionsMenu(menu);
SubMenu meu_File = menu.addSubMenu("文件");
SubMenu meu_Survey = menu.addSubMenu("测量");
SubMenu meu_Browse = menu.addSubMenu("查看");
SubMenu meu_Preprocessing = menu.addSubMenu("预处理");
//Setting the secondary level menu
meu_File.add(INT_MENU_FILE, INT_MENU_FILE_NewProject, 1, "新建项目");
meu_File.add(INT_MENU_FILE, INT_MENU_FILE_OpenProject, 2, "打开项目");
meu_File.add(INT_MENU_FILE, INT_MENU_FILE_CloseProject, 3, "关闭项目");
meu_File.add(INT_MENU_FILE, INT_MENU_FILE_DeleteProject, 4, "删除项目");
meu_File.add(INT_MENU_FILE, INT_MENU_FILE_NewObservationDocument, 5, "新建观测文件");
meu_File.add(INT_MENU_FILE, INT_MENU_FILE_OpenObservationDocument, 6, "打开观测文件");
meu_File.add(INT_MENU_FILE, INT_MENU_FILE_CloseObservationDocument, 7, "关闭观测文件");
meu_File.add(INT_MENU_FILE, INT_MENU_FILE_DeleteObservationDocument, 8, "删除观测文件");
meu_File.add(INT_MENU_FILE, INT_MENU_FILE_Exit, 9, "退 出");
meu_Survey.add(INT_MENU_SURVEY, INT_MENU_SURVEY_LevelingObservation, 1, "水准观测");
meu_Survey.add(INT_MENU_SURVEY, INT_MENU_SURVEY_Leveling_With_Power_Continued, 2, "断电续测");
meu_Survey.add(INT_MENU_SURVEY, INT_MENU_SURVEY_EditMeasuringSectionInformation, 3, "修改测段信息");
meu_Survey.add(INT_MENU_SURVEY, INT_MENU_SURVEY_SegmentDataInvalidation, 6, "测段数据作废");
meu_Survey.add(INT_MENU_SURVEY, INT_MENU_SURVEY_DetectionIntermission, 9, "检测间歇点");
meu_Survey.add(INT_MENU_SURVEY, INT_MENU_SURVEY_iAngleInspection, 10, "i角检校");
meu_Browse.add(INT_MENU_BROWSE, INT_MENU_BROWSE_ViewEverySegmentData, 1, "查看各测段数据");
meu_Browse.add(INT_MENU_BROWSE, INT_MENU_BROWSE_ViewCurrentSegmentData, 2, "查看当前测段数据");
meu_Browse.add(INT_MENU_BROWSE, INT_MENU_BROWSE_ViewIAngeleRecord, 3, "查看i角记录");
meu_Browse.add(INT_MENU_BROWSE, INT_MENU_BROWSE_ViewAdjustmentResult, 4, "查看平差成果");
meu_Preprocessing.add(INT_MENU_PREPROCESSING, INT_MENU_PREPROCESSING_ExportObservationBook, 1, "导出观测手簿");
meu_Preprocessing.add(INT_MENU_PREPROCESSING, INT_MENU_PREPROCESSING_ExportSegmentObservationValue, 2, "导出测段观测值");
meu_Preprocessing.add(INT_MENU_PREPROCESSING, INT_MENU_PREPROCESSING_ExportSpaceTimeTrajectory, 3, "导出时空轨迹");
meu_Preprocessing.add(INT_MENU_PREPROCESSING, INT_MENU_PREPROCESSING_AdjustmentSetting, 4, "平差设置");
meu_Preprocessing.add(INT_MENU_PREPROCESSING, INT_MENU_PREPROCESSING_AdjustmentCalculation, 5, "平差计算");
meu_Preprocessing.add(INT_MENU_PREPROCESSING, INT_MENU_PREPROCESSING_AccuracyAssessment, 6, "精度评定");
meu_Preprocessing.add(INT_MENU_PREPROCESSING, INT_MENU_PREPROCESSING_ExportAdjustmentResult, 7, "导出平差成果");
//一下代码也可以在创建菜单时实现相关效果(按组设置,如INT_MENU_SURVEY即为一个组名)
//meu_Survey.setGroupEnabled(INT_MENU_SURVEY, false);
//meu_Browse.setGroupEnabled(INT_MENU_BROWSE, false);
//meu_Preprocessing.setGroupEnabled(INT_MENU_PREPROCESSING, false);
return true;
}
@Override
public boolean onPrepareOptionsMenu(Menu menu) {//在创建菜单时或点击菜单(在菜单项弹出之前的菜单符号)时均运行
super.onPrepareOptionsMenu(menu);
if (strCurrentProjectName.equals("")) {
//"0" 是子菜单序号(序号从0开始排),这里代表 "meu_File" ,其他类推
//"4" (序号从0开始排,与设定的常数值或菜单Order值不一定一致)代表 "INT_MENU_FILE_NewObservationDocument",这里是"meu_File"的二级子菜单,其他数字类推
menu.getItem(0).getSubMenu().getItem(4).setEnabled(false);//先获取子菜单,在获取子菜单下的菜单项
menu.getItem(0).getSubMenu().getItem(5).setEnabled(false);
menu.getItem(0).getSubMenu().getItem(6).setEnabled(false);
menu.getItem(0).getSubMenu().getItem(7).setEnabled(false);
menu.getItem(1).getSubMenu().setGroupEnabled(INT_MENU_SURVEY, false);
menu.getItem(2).getSubMenu().setGroupEnabled(INT_MENU_BROWSE, false);
menu.getItem(2).getSubMenu().setGroupEnabled(INT_MENU_PREPROCESSING, false);
}else{
menu.getItem(0).getSubMenu().getItem(4).setEnabled(true);
menu.getItem(0).getSubMenu().getItem(5).setEnabled(true);
menu.getItem(0).getSubMenu().getItem(6).setEnabled(true);
menu.getItem(0).getSubMenu().getItem(7).setEnabled(true);
if(strCurrentRecordFile.equals("")){
menu.getItem(1).getSubMenu().setGroupEnabled(INT_MENU_SURVEY, false);
menu.getItem(2).getSubMenu().setGroupEnabled(INT_MENU_BROWSE, false);
menu.getItem(2).getSubMenu().setGroupEnabled(INT_MENU_PREPROCESSING, false);
}else{
menu.getItem(1).getSubMenu().setGroupEnabled(INT_MENU_SURVEY, true);
menu.getItem(2).getSubMenu().setGroupEnabled(INT_MENU_BROWSE, true);
menu.getItem(3).getSubMenu().setGroupEnabled(INT_MENU_PREPROCESSING, true);
}
}
return true;
}