我在操作栏中遇到分享按钮的问题。
屏幕截图:
如您所见,右侧有两个图标。但我只添加了一个不活动的图标(第一个)。第二个是活跃的,并做我想要的(分享内容)。 因此,我只想要第一个带有第二个图标的图标。
第二个图标来自哪里?!!
菜单:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android">
<item android:id="@+id/animation_detail_share"
android:title="@string/share"
android:showAsAction="ifRoom"
android:actionProviderClass=
"android.widget.ShareActionProvider"
/>
</menu>
片段:
@Override
public void onCreate(Bundle savedInstanceState) {
setHasOptionsMenu(true);
super.onCreate(savedInstanceState);
}
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,
Bundle savedInstanceState) {
return inflater.inflate(R.layout.fragment_inplace_animation_details, container, false);
}
@Override
public void onCreateOptionsMenu(Menu menu, MenuInflater inflater) {
inflater.inflate(R.menu.animation_detail_menu, menu);
MenuItem item = menu.findItem(R.id.animation_detail_share);
ShareActionProvider mShareActionProvider = (ShareActionProvider) item.getActionProvider();
Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
if(mShareActionProvider != null) {
mShareActionProvider.setShareIntent(Intent.createChooser(sendIntent, getResources().getText(R.string.share)));
}
}
我只在片段内部而不是在活动中给菜单充气。
答案 0 :(得分:1)
我有两个问题:
createChooser()
创建新图标setShareHistoryFileName(null);
以防止显示另一个图标。所以最终的代码如下:
...
mShareActionProvider.setShareHistoryFileName(null);
mShareActionProvider.setShareIntent(sendIntent);
...