【发布时间】:2013-07-11 03:13:55
【问题描述】:
我正在尝试在我的项目中实现 ActionBarSherlock。将菜单/操作项添加到操作栏正在 2.1 上工作,但在我的 nexus4 中没有,在 4.0.3 模拟器中也没有。问题是函数 onCreateOptionsMenu(Menu menu) 从未在我的设备中被调用,但在 2.1 中被调用,因此我手机的操作栏中没有显示任何操作项。
- 我已将 ActionBarSherlock 作为库包含在我的项目中。
- 我已在清单文件中的应用程序中设置了适当的主题。
- 我使用 SherlockActivity 扩展了我的活动课程。
- 我已经从 sherlock 库中重写了适当的类(目前我知道,如果没有,菜单也不会在 2.1 的操作栏中显示)
以下是设置主题的清单的一部分。
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/Theme.Sherlock.Light.DarkActionBar" >
以下是 menu.xml 文件:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/menu_item_call"
android:showAsAction="always"
android:title="Call"/>
<item
android:id="@+id/menu_item_share"
android:showAsAction="always"
android:title="Share"/>
<item
android:id="@+id/menu_item_save"
android:showAsAction="always"
android:title="Save"/>
</menu>
以下是活动的相关部分。
//other imports
import com.actionbarsherlock.app.SherlockActivity;
import com.actionbarsherlock.view.Menu;
import com.actionbarsherlock.view.MenuInflater;
import com.actionbarsherlock.view.Window;
public class SelectCategories extends SherlockActivity implements
OnClickListener {
//other code
@Override
public boolean onCreateOptionsMenu(Menu menu) {
// TODO Auto-generated method stub
MenuInflater inflater = getSupportMenuInflater();
inflater.inflate(R.menu.menu, menu);
return super.onCreateOptionsMenu(menu);
//return true; also has no effect
}
}
我一直在尝试解决这个问题,但已经解决了几个小时但无法解决。请帮我。 提前谢谢你。
【问题讨论】:
-
也可以在 Activity 中设置 android:theme,或者在 sherlock 库中检查你的覆盖类。
标签: android actionbarsherlock android-actionbar