【问题标题】:Make text bold, italic, and bigger for email body in java在 java 中为电子邮件正文设置粗体、斜体和更大的文本
【发布时间】:2017-01-19 20:29:53
【问题描述】:

我发送一封电子邮件,其中包含在整个应用程序中检索到的数据,如下所示:

String body = formatEmailBody();

Intent i = new Intent(Intent.ACTION_SEND);
i.setType("message/rfc822");
i.putExtra(Intent.EXTRA_EMAIL  , new String[]{"recipient@example.com"}); // Set receipient here
i.putExtra(Intent.EXTRA_SUBJECT, "Subject");
i.putExtra(Intent.EXTRA_TEXT   , body);
try {
    startActivity(Intent.createChooser(i, "Send mail..."));
} catch (android.content.ActivityNotFoundException ex) {
    Toast.makeText(MainActivity.this, "There are no email clients installed.", Toast.LENGTH_SHORT).show();
}

formatEmailBody 只需创建一个 String 作为我的电子邮件正文发送。

但是一个简单的字符串很无聊,我该如何添加粗体/斜体/更大的文本?

我尝试了以下方法,但没有成功:

Html.fromHtml(new StringBuilder()
            .append("<p><b>Some Content</b></p>")
            .append("<small><p>More content</p></small>")
            .toString()));

【问题讨论】:

标签: java android email


【解决方案1】:

你有没有看过Intent,尤其是“常量”部分,你在哪里看到:

EXTRA_HTML_TEXT : 与 Intent 关联的常量字符串,与 ACTION_SEND 一起使用以提供作为 HTML 格式文本的 EXTRA_TEXT 的替代项。

但请注意here

与 Intent 关联的常量字符串,与 ACTION_SEND 一起使用以提供作为 HTML 格式文本的 EXTRA_TEXT 的替代项。请注意,您还必须提供 EXTRA_TEXT。

所以像下面这样的东西应该会提高正确显示 html 内容的几率:-

i.setType("text/html");
i.putExtra(Intent.EXTRA_HTML_TEXT, htmlText);
i.putExtra(Intent.EXTRA_TEXT, Html.fromHtml(htmlText));

【讨论】:

  • 我应该传递一个包含所需标签的字符串,还是应该在使用这个常量时保持第二个代码 sn-p 中显示的格式?它似乎不适用于简单的字符串,因为它会引发 IllegalArgumentException,并且 HTML 格式给了我一个空的正文。
  • EXTRA_HTML_TEXT 还需要一个 EXTRA_TEXT 来提供一些 TEXT 内容...试试我更新的答案...
  • 正文中只显示非Html文本
  • 尝试将 type 设置为 text/html。
  • HTML 文本仍然没有出现
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-07-26
相关资源
最近更新 更多