我尝试使用以下代码共享多行文本,但只显示最后一行。
val sharingIntent = Intent(Intent.ACTION_SEND)
sharingIntent.setType("text/plain")
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Found this cool deal! Check it out.")
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, TITLE)
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "MRP : $PRICE")
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT, "Deal Price : $DEAL_PRICE")
startActivity(Intent.createChooser(sharingIntent, "Share using"))
答案 0 :(得分:2)
当您致电putExtra(key, value)
时,之前放在同一key
下的任何值都会被清除。尝试放一个包含所需文本的字符串:
sharingIntent.putExtra(android.content.Intent.EXTRA_TEXT,
"Found this cool deal! Check it out.\n" +
TITLE + "\n" +
"MRP : $PRICE\n" +
"DEAL PRICE : $DEAL_PRICE");
对于HTML内容,您需要向我们展示您使用的代码。但是,您可能不想使用fromHtml()
;将HTML转换为样式文本,我怀疑这不是WhatsApp期望收到的。尝试使用正确的MIME类型发送原始HTML。
答案 1 :(得分:1)
仅显示最后一行的原因是单个intent只能为键具有一个值。因此,每次调用putExtra(EXTRA_TEXT,foo)时,都会覆盖前一个。如果要发送多行,请将其作为带有“\ n”字符的单个字符串发送。
至于发送html-你需要告诉它你正在发送html。你告诉它你正在发送纯文本。如果您要发送html,请将mime类型更改为text / html。 (注意:我不知道whatsapp是否支持html,但这就是你将html发送到支持它的任何应用程序的方式。)
答案 2 :(得分:0)
在Kotlin中,您可以对多行文本使用三重引号引号,我不确定是否可以在Java中使用。
val moreStuff = "Text or Numbers or arrays"
var myText = """
line 1 of the text
line 2 of the text
$moreStuff
"""
它将按照您键入的方式对其进行格式化
var myText = """
Found this cool deal! Check it out.
$TITLE
MRP : $PRICE
DEAL PRICE : $DEAL_PRICE)"""