什么是应用程序多行文本共享意图

时间:2017-12-31 03:09:20

标签: android android-intent kotlin android-sharing

我尝试使用以下代码共享多行文本,但只显示最后一行。 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"))

3 个答案:

答案 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)"""