因为这是我关于stackoverflow的第一个问题,我有点紧张,希望我没有做错任何事(至少我使用了搜索功能)。
我在使用以下代码(简化)开发Android应用程序时遇到问题:
public class MainActivity extends ActionBarActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public boolean onCreateOptionsMenu(Menu menu) {
MenuItem test1 = menu.add(0, 1, 0, "test1");
MenuItemCompat.setShowAsAction(test1, MenuItemCompat.SHOW_AS_ACTION_ALWAYS);
MenuItem test2 = menu.add(0, 2, 0, "test2");
MenuItemCompat.setShowAsAction(test2, MenuItemCompat.SHOW_AS_ACTION_NEVER);
MenuItem test3 = menu.add(0, 3, 0, "test3");
MenuItemCompat.setShowAsAction(test3, MenuItemCompat.SHOW_AS_ACTION_NEVER);
MenuItem test4 = menu.add(0, 4, 0, "test4");
MenuItemCompat.setShowAsAction(test4, MenuItemCompat.SHOW_AS_ACTION_NEVER);
MenuItem test5 = menu.add(0, 5, 0, "test5");
MenuItemCompat.setShowAsAction(test5, MenuItemCompat.SHOW_AS_ACTION_NEVER);
return super.onCreateOptionsMenu(menu);
}
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case 1:
Toast.makeText(this, "1", Toast.LENGTH_SHORT).show();
return true;
case 2:
Toast.makeText(this, "2", Toast.LENGTH_SHORT).show();
return true;
case 3:
Toast.makeText(this, "3", Toast.LENGTH_SHORT).show();
return true;
case 4:
Toast.makeText(this, "4", Toast.LENGTH_SHORT).show();
return true;
case 5:
Toast.makeText(this, "5", Toast.LENGTH_SHORT).show();
return true;
default:
return super.onOptionsItemSelected(item);
}
}
}
这在我的所有测试设备上都能正常运行,其中包括Android 2.6.3,4.1.x,4.2.x,4.4,5.0
只有一个设备出现问题:
如果按下硬件菜单按钮,则不会打开任何选项菜单。什么都没发生。
我正在使用
但奇怪的是它适用于其他设备(例如Galaxy Note 8.0,GT-N5100,Android 4.2.2)
有人可以在您的设备上测试上面的代码吗? 有人有解决方法吗?
~~编辑:~~
我尝试了以下代码,但溢出菜单也没有打开: - (
Button btnOpenMenu = (Button) findViewById(R.id.button);
btnOpenMenu.setOnClickListener( new View.OnClickListener() {
@Override
public void onClick(View v) {
MainActivity.this.openOptionsMenu();
}
});
我认为它必须是最新支持库v7版本21.0.x中的错误
但是为什么只能在三星Galaxy Tablet 3上使用?非常感谢
-Gra