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"));
我想循环应该为每个部分写share.putextra,但是这里putextra只有一次只有最后一部分的值
ans shuld就像这样
share.putExtra(Intent.EXTRA_TEXT, part1);
share.putExtra(Intent.EXTRA_TEXT, part2);
share.putExtra(Intent.EXTRA_TEXT, part3);
答案 0 :(得分:3)
你做错了,在Intent中每个键都是唯一的,所以如果你试试 如果用相同的密钥放置任何数据,它就会被覆盖。
因此,在你的代码中运行一个循环,并且循环中的Intent键是相同的,所以它被覆盖了,你只获得了最后一个值。
要解决此问题,请尝试使用不同的密钥放置数据。
有关详细信息,请访问Android developer page。
答案 1 :(得分:0)
试试这个
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 />");
StringBuilder sb = new StringBuilder();
for (String part : parts){
sb.append(part);
}
startActivity(Intent.createChooser(share, "Share On"));
答案 2 :(得分:0)
你必须立即设置所有数据,你可以使用带有break / n的字符串构建器,然后为你提供一次意图。
StringBuilder sb = new StringBuilder();
String [] parts = pasteData.split("<br />");
for (String part : parts){
sb.append(part);
}
share.putExtra(Intent.EXTRA_TEXT, sb.toString());
答案 3 :(得分:0)
是的,我得到了ans,感谢所有人的支持和想法 这就是我们如何为内容添加新行(电子邮件,远足,短信,环聊,whatsapp)。
if (url.startsWith("share://")) {
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.addFlags(Intent.FLAG_GRANT_READ_URI_PERMISSION);
Toast toast=Toast.makeText(getApplicationContext(),pasteData, Toast.LENGTH_LONG);
toast.setMargin(50,50);
toast.show();
StringBuilder sb = new StringBuilder();
String [] parts = pasteData.split("<br />");
for (int i = 0; i < parts.length; i++) {
String part = parts[i];
sb.append(part);
sb.append('\n');
}
share.putExtra(android.content.Intent.EXTRA_TEXT, (Serializable) sb);
//share.setType("message/rfc822");
//share.setType("text/plain");
share.setType("*/*");
startActivity(Intent.createChooser(share, "Share On"));
return true;