android - putExtra 在 Intent 中使用 for 循环

标签 android android-intent

Intent share = new Intent(Intent.ACTION_SEND);
Uri requestUrl = Uri.parse(url);
String pContent = requestUrl.toString().split("share://")[1];
String pasteData = pContent+"";

share.setAction(Intent.ACTION_SEND);
share.setType("message/rfc822");
share.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
//String septline = System.getProperty("line.separator");
//pasteData= pasteData.replaceAll("<br />", "\n");
Toast toast=Toast.makeText(getApplicationContext(),pasteData, Toast.LENGTH_LONG);
toast.setMargin(50,50);
toast.show();
String [] parts = pasteData.split("<br />");
for (String part : parts){
         share.putExtra(Intent.EXTRA_TEXT, part);
}
startActivity(Intent.createChooser(share, "Share On"));

我希望for循环应该为每个部分编写share.putextra,但这里putextra只有一次,并且只有最后一部分的值

应该是这样的

share.putExtra(Intent.EXTRA_TEXT, part1);
share.putExtra(Intent.EXTRA_TEXT, part2);
share.putExtra(Intent.EXTRA_TEXT, part3);

最佳答案

You are doing it wrong, In Intent every key is unique, so if you try to put any data with same key, it's gonna be overrided.

因此,在您的代码中,当您运行循环时,Intent 键在循环中是相同的,因此它会被覆盖,并且您只能获得最后一个值。

要解决此问题,请尝试使用不同的键放置数据。

了解更多信息请访问Android developer page .

关于android - putExtra 在 Intent 中使用 for 循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38627877/

相关文章:

java - 将字符串传递给其他 Activity 不起作用

Android 11/API 30 - 打开 YouTube 链接

android - 使用 DownloadManager 将数据从 Activity 传递到 BroadcastReceiver

android - 识别使用缺少 AttributeSet 的 View 构造函数时的错误

android - 带电话号码的国家代码

java - Android 从数据库中删除一行

android - OpenVPN Connect 应用程序是否有 Intent/接收者添加新的 VPN 配置文件?

Android Studio gradle 从库模块访问模块类

android - 获取文件权限和父目录

android - 在Android中如何注册接收耳机插播?