【发布时间】:2015-07-03 06:02:00
【问题描述】:
我在操作栏上创建了一个分享按钮 - 但它似乎出现了两次。
菜单XML文件如下:
<menu xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:app="http://schemas.android.com/apk/res-auto">
<item
android:id="@+id/action_share"
android:title="@string/action_share"
app:showAsAction="always"
app:actionProviderClass="android.support.v7.widget.ShareActionProvider"
/>
</menu>
并在视图中的onCreateOptionsMenu中实例化。
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.menu_detail, menu);
MenuItem menuItem = menu.findItem(R.id.action_share);
mShareActionProvider =
(ShareActionProvider) MenuItemCompat.getActionProvider(menuItem);
if(mShareActionProvider != null && !mForecastString.isEmpty()){
mShareActionProvider.setShareIntent(createShareForecastIntent());
} else{
Log.d(LOG_TAG, "Share Action provider is null?");
}
super.onCreateOptionsMenu(menu,inflater);
}
如果只定义、膨胀和实例化一次共享按钮,它怎么会出现两次?
【问题讨论】:
-
真的很奇怪。从未见过。
-
您可能在活动基类及其扩展,或活动和片段中使用了相同的
onCreateOptionsMenu。 -
是的 - 这正是问题所在!
-
我猜,您将 Menu 膨胀了两次。第一个来自活动,第二个来自片段。 - 你需要从任何一个地方删除。
标签: android android-intent android-actionbar android-menu android-sharing