当从操作栏点击共享时,facebook分享无效

时间:2014-03-13 18:28:33

标签: android xml facebook android-activity android-actionbar

我使用以下代码在操作栏中放置一个分享按钮,以便共享特定文本。当我点击分享时,它适用于消息和电子邮件等,但是当我点击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;
    }

1 个答案:

答案 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());