我的代码工作正常,因为1.6升级到4.3后突然无法正常显示。
看起来绘制菜单的系统获得了错误的屏幕宽度值。
代码测试的任何想法!我尝试改变主题,我没有想法!
它似乎只影响4.x设备。所有其他设备不受影响。
在onCreate中有必要的: -
if (android.os.Build.VERSION.SDK_INT>10)
getActionBar();
也
@Override
public boolean onCreateOptionsMenu(Menu menu) {
//super.onCreateOptionsMenu(menu);
if (!app().day_change){
menu.add(0,0,0,"<<Day");
menu.add(0,1,0,"Day>>");
}
menu.add(0,2,0,"Hot Sync");
menu.add(0,3,0,"Delete Week File");
menu.add(0,4,0,"Import Test Data File");
menu.add(0,5,0,"View Mod History");
menu.add(0,15,0,"View Changes to Data");
menu.add(0,6,0,"Select Bluetooth device");
menu.add(0,9,0,"View Auto Backup files");
menu.add(0,10,0,"Options");
//menu.add(0,7,0,"WIFI Print Test");
//menu.add(0,8,0,"Delnote Test");
return super.onCreateOptionsMenu(menu);
}
public boolean onPrepareOptionsMenu(Menu menu){
menu.clear();
if (!app().day_change){
menu.add(0,0,0,"<<Day");
menu.add(0,1,0,"Day>>");
}
menu.add(0,2,0,"Hot Sync");
menu.add(0,3,0,"Delete Week File");
menu.add(0,4,0,"Import Test Data File");
menu.add(0,5,0,"View Mod History");
menu.add(0,15,0,"View Changes to Data");
menu.add(0,6,0,"Select Bluetooth device");
menu.add(0,9,0,"View Auto Backup files");
menu.add(0,10,0,"Options");
menu.add(0,11,0,"SMS Invoicing");
subMenu = menu.addSubMenu("Contacts");
subMenu.add(0, 12, 0, " Update");
subMenu.add(0, 13, 0, " Delete All z");
menu.add(0,14,0,"Email Steve Weekfile");
//menu.add(0,7,0,"WIFI Print Test");
//menu.add(0,8,0,"Delnote Test");
return super.onPrepareOptionsMenu(menu);
}
以下是Nexus 7的视图
Option menu http://www.milkroundsoftware.co.uk/device-2013-08-12-094853.png
非常感谢Steve
答案 0 :(得分:0)
您不需要使用onPrepareOptionsMenu。
相反,如果项目为空,则将项目添加到菜单中,并始终在onCreateOptionsMenu()方法中返回true。
另外,如果您希望在旧设备上处理actionBar,请考虑使用actionBarSherlock。
答案 1 :(得分:0)
在Manifest
中结果很简单<supports-screens
android:largeScreens="true"
android:normalScreens="true"
android:smallScreens="true"
android:anyDensity="true" />
android:anyDensity设置为false导致(作为副作用)当菜单被渲染时,宽度变量被设置为零,因此屏幕上的结果位置。
感谢您的帮助 - 我应该将此标记为问题吗?