Android:分享列表?

Posted

技术标签:

【中文标题】Android:分享列表?【英文标题】:Android: Share list? 【发布时间】:2017-12-27 06:49:50 【问题描述】:

我已经创建了一个笔记列表(字符串数组)并且应该共享这个列表。 我的代码:

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
sendIntent.putExtra(Intent.EXTRA_TEXT, "This is my text to send.");
sendIntent.setType("text/plain");
startActivity(sendIntent);

列表是否有 MIME 类型?这可能吗? (setType) 例如 setType("text/array") 或类似的东西。找了好久,一无所获。

感谢您的帮助。

【问题讨论】:

你可以放一个数组作为额外的。 @MuratK。所有接收应用程序可能不处理数组元素 @Thomi 我可以知道您打算将笔记列表共享给哪个应用程序吗? 【参考方案1】:

如果只是String Array,就用这个方法

public Intent putExtra(String name, String[] value) 
    if (mExtras == null) 
        mExtras = new Bundle();
    
    mExtras.putStringArray(name, value);
    return this;

这已经为Intent 类定义。

发送者类:

Intent sendIntent = new Intent();
sendIntent.setAction(Intent.ACTION_SEND);
String[] strArr = new String[]"abc","def";
sendIntent.putExtra(Intent.EXTRA_TEXT, strArr);
sendIntent.setType("text/plain");
startActivity(sendIntent);

接收器类:

String[] results = getIntent().getExtras().getStringArray(Intent.EXTRA_TEXT);

【讨论】:

【参考方案2】:

见What's App multiline text share intent。

val list: ArrayList<String> = arrayListOf("aaa", "bbb") // Some multilined text here.
val joinedText = list.joinToString("\n")

val sendIntent = Intent().apply 
    action = Intent.ACTION_SEND
    putExtra(Intent.EXTRA_TEXT, joinedText)
    type = "text/plain"


val shareIntent = Intent.createChooser(sendIntent, null)
startActivity(shareIntent)

【讨论】:

以上是关于Android:分享列表?的主要内容,如果未能解决你的问题,请参考以下文章

安卓Android开发:获取手机上可分享的应用列表

安卓Android开发:获取手机上可分享的应用列表

如何让我的 React Native 应用出现在 android 的分享列表中

Android微信分享点击列表无响应的解决方法

Android微信分享点击列表无响应的解决方法

android studiory ctch 比较全的android 源码合集 + 企业级应用分享,业积累(2118)