我在我的应用程序中有一个选项菜单,我已经测试过它可以在Android 4.0上工作。代码如下:
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.layout.menu, menu);
return true;
}
/**
* Event Handling for Individual menu item selected
* Identify single menu item by it's id
* */
@Override
public boolean onOptionsItemSelected(MenuItem item)
{
switch (item.getItemId())
{
case R.id.menu_share:
//code to do something when chosen etc
return true;
default:
return super.onOptionsItemSelected(item);
}
} 现在,如果我在Android4.4上运行相同的代码(我在Moto G上测试过),选项菜单就不会出现。
知道我必须做什么,因为设备上没有Android菜单按钮?
发布于 2014-01-24 16:59:20
如果您想强制应用程序显示Action溢出,请将此代码放入activity类中:
try {
ViewConfiguration config = ViewConfiguration.get(this);
Field menuKeyField = ViewConfiguration.class
.getDeclaredField("sHasPermanentMenuKey");
if (menuKeyField != null) {
menuKeyField.setAccessible(true);
menuKeyField.setBoolean(config, false);
}
} catch (Exception ex) {
// Ignore
}阅读此http://developer.android.com/design/patterns/compatibility.html
操作栏中的操作溢出提供了对应用程序中较少使用的操作的访问。溢出图标仅显示在没有菜单硬件按键的电话上。具有菜单键的电话在用户按键时会显示操作溢出。
发布于 2014-01-24 16:56:59
一个好的做法是直接调用超类:
@Override
public boolean onCreateOptionsMenu(Menu menu)
{
MenuInflater menuInflater = getMenuInflater();
menuInflater.inflate(R.layout.menu, menu);
return super.onCreateOptionsMenu(menu);
}您看不到菜单的原因可能是设备有一个硬件菜单按钮,必须按下该按钮才能显示选项菜单。
你在使用模拟器吗?它的设置是什么?
https://stackoverflow.com/questions/21328232
复制相似问题