0

我有一个 Android 应用程序,我让用户可以选择将 URL 共享到他们正在查看的当前页面。我正在按如下方式实现此代码:

public static void shareUrl(Context context, String url)
{
    Intent sendIntent = new Intent();
    sendIntent.setAction(Intent.ACTION_SEND);
    sendIntent.putExtra(Intent.EXTRA_TEXT, url);
    sendIntent.setType("text/plain");
    context.startActivity(Intent.createChooser(sendIntent, "Share URL via..."));
}

当我调用此方法时,我会得到一个漂亮的弹出菜单,其中包含可以打开“文本/纯文本”内容的应用程序列表,例如电子邮件客户端和“消息”, 请参见此屏幕截图

我想在这个列表中添加一个选项,一个将 URL 复制到剪贴板的简单选项。Dropbox 有这样一个功能,如果您通过 Dropbox 应用共享公共文件夹中的任何文件,您将获得相同的应用选择列表,但此外(在顶部)还有一个“复制链接”共享选项,它可以复制链接到剪贴板,请参阅此屏幕截图

我可以在 ActionBar 上制作一个单独的按钮来将 URL 复制到用户的剪贴板,但我认为它非常适合共享菜单,我不想在 ActionBar 上浪费空间。

是否可以在此菜单中添加共享选项?Dropbox 如何做到这一点?我在想也许 Dropbox 有一个单独的应用程序“复制链接”,它只是用来从 Dropbox 接收 URL 并将它们复制到剪贴板,但这没有任何意义:(1)那个应用程序在哪里,我在任何地方都找不到它其他在我的手机上?(2) 为什么我通过自己的应用分享时没有选择此应用?

4

1 回答 1

-1

尝试:

 ClipboardManager clipboard = (ClipboardManager) getSystemService(CLIPBOARD_SERVICE); 
 clipboard.setText("Text to copy");

 Intent intent = new Intent();
 intent.setAction(Intent.ACTION_SEND);
 intent.putExtra(Intent.EXTRA_TEXT, "Extra Text"+clipboard.getText());
 intent.setType("text/plain");



 Intent chooserIntent = Intent.createChooser(intent, "Chooser Title");
 chooserIntent.putExtra(Intent.EXTRA_INITIAL_INTENTS, new Intent[] { clipboardIntent     });
 startActivity(chooserIntent);

如此处所示关键是.putExtra().

选择器的唯一一个附加参数是 Intent.EXTRA_INITIAL_INTENTS。它的描述是:

当使用 ACTION_CHOOSER 向用户显示时,Intent 或 LabeledIntent 对象的 Parcelable[] 设置为附加活动的 putExtra(String, Parcelable[]) 以放置选择列表的前面。

如此处所见

于 2013-05-24T18:40:24.550 回答