我使用以下代码在操作栏中放置一个分享按钮,以便共享特定文本。当我点击分享时,它适用于消息和电子邮件等,但是当我点击Facebook时。 Facebook在创建状态位上打开,虽然下面代码中的共享文本不存在。
我做错了什么?或者我需要添加或更改内容吗?
XML:
<?xml version="1.0" encoding="utf-8"?>
<menu xmlns:android="http://schemas.android.com/apk/res/android" >
<item android:id="@+id/menu_item_share"
android:showAsAction="ifRoom"
android:title="Share"
android:actionProviderClass="android.widget.ShareActionProvider" />
</menu>
ActivityMain:
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.action_bar_share_menu, menu);
MenuItem item = menu.findItem(R.id.menu_item_share);
ShareActionProvider myShareActionProvider = (ShareActionProvider) item.getActionProvider();
Intent myIntent = new Intent();
myIntent.setAction(Intent.ACTION_SEND);
myIntent.putExtra(Intent.EXTRA_TEXT, "Whatever message you want to share");
myIntent.setType("text/plain");
myShareActionProvider.setShareIntent(myIntent);
return true;
}
答案 0 :(得分:0)
Facebook可能正在寻找EXTRA_SUBJECT。
FB上没有太多的巨魔。
private Intent createShareIntent() {
Intent shareIntent = new Intent(Intent.ACTION_SEND);
shareIntent.setType("text/plain");
String s = getString(R.string.shareText);
shareIntent.putExtra(Intent.EXTRA_TEXT, s);
s = getString(R.string.sharesubject);
shareIntent.putExtra(Intent.EXTRA_SUBJECT, s);
return shareIntent;
}
使用appcompat操作栏。
MenuItem menuItem = menu.findItem(R.id.menu_item_share);
// Fetch and store ShareActionProvider
mShareActionProvider = (ShareActionProvider) MenuItemCompat
.getActionProvider(menuItem);
mShareActionProvider.setShareIntent(createShareIntent());