【发布时间】:2013-06-17 05:00:15
【问题描述】:
我在使用slidingmenu library 和actionbarsherlock 使用操作栏上的菜单项时遇到问题。
有人可以帮忙吗?
这里是代码
@Override
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case android.R.id.home:
toggle();
return true;
}
return onOptionsItemSelected(item);
}
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.menu, menu);
return true;
}
这是 menu.xml
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item
android:id="@+id/print"
android:title="@string/printItem"
android:icon="@drawable/ic_print"
android:showAsAction="always" />
<item
android:id="@+id/share"
android:title="@string/shareItem"
android:icon="@drawable/ic_action_share"
android:showAsAction="always"
android:actionProviderClass="android.widget.ShareActionProvider" />
我的 logcat 说我遇到了运行时错误
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getSupportMenuInflater().inflate(R.menu.menu, menu);
return true;
}
【问题讨论】:
-
您的 logcat 说您在
android.week08.fragments.MAPFragment.onStart中有一个NullPointerException- 这与您发布的代码有什么关系? -
@ianhanniballake 我使用地图片段在 viewpager 中显示地图视图。这在我的真实设备上运行良好,这些日志是从我没有谷歌播放服务的模拟器粘贴的。问题是如果我不使用
getSupportMenuInflater().inflate(R.menu.menu, menu);并以编程方式添加菜单项,它就可以工作。我不明白根本原因:( -
那么您的菜单有什么问题?发布您收到的与菜单相关的错误日志。
-
如果您在片段中创建菜单,请确保调用
setHasOptionsMenu(true),例如在onCreate()中。 -
也许你应该使用其他库。我推荐谷歌官方的导航抽屉:developer.android.com/training/implementing-navigation/…
标签: java android actionbarsherlock android-viewpager