我试图在ActionBarSherlock的帮助下在Android 2.3应用中实现选项菜单。但它没有显示。这是一个简单的XML布局文件" breadcrumb_bar_menu"选项菜单:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/inbox"
android:icon="@drawable/topbar_btn_inbox"
android:title= "@string/about" />
<item android:id="@+id/sent"
android:icon="@drawable/topbar_sent"
android:title="@string/about" />
</menu>
这是我继承自SherlockActivity的活动:
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.breadcrumb_bar_menu, menu);
return true;
}
但我无法看到活动的选项菜单。我做错了什么?
答案 0 :(得分:3)
在菜单xml项目的属性中加入android:showAsAction="ifRoom"
。
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/inbox"
android:showAsAction="ifRoom"
android:icon="@drawable/topbar_btn_inbox"
android:title= "@string/about" />
<item android:id="@+id/sent"
android:showAsAction="ifRoom"
android:icon="@drawable/topbar_sent"
android:title="@string/about" />
</menu>
答案 1 :(得分:1)
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
com.actionbarsherlock.view.MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.actionoption, menu);
return true;
}
答案 2 :(得分:0)
您必须为deivce设置navigationmode。 也是你的设备有硬菜单键,如果是,那么你将看不到三个菜单选项点。
答案 3 :(得分:0)
您需要告诉系统您将使用菜单:
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setHasOptionsMenu(true);
}
答案 4 :(得分:0)
使optionmenu像其他API一样工作&gt; 2.3.3使用Actionbarsherlock 我做了以下:
菜单文件:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/navigateMenu"
android:icon="@drawable/icon"
android:title="Menu"
android:orderInCategory:"9"
android:showAsAction="always"
android:titleCondensed="Menu">
<menu>
<item android:id="@+id/id1"
android:icon="@drawable/option1"
android:title="option1" />
<item android:id="@+id/id2"
android:icon="@drawable/option2"
android:title="option2" />
<item android:id="@+id/id3"
android:icon="@drawable/option3"
android:title="option3" />
</menu>
</item>
</menu>
在您的活动代码中: 获取父MenuItem的引用,并使用SHOW_AS_ACTION_ALWAYS属性将其附加到操作栏 参见相同的代码:
活动文件:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
MenuInflater inflater = getMenuInflater();
inflater.inflate(R.menu.sample_menu, menu);
//To make optionmenu visible on Actionbar for 2.3.3
menu.findItem(R.id.navigateMenu).setShowAsAction(MenuItem.SHOW_AS_ACTION_ALWAYS)
return true;
}