我发送了一封电子邮件,其中包含在整个应用程序中检索到的数据,例如:
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()));
您是否了解Intent,尤其是"常量"部分,您可以看到:
EXTRA_HTML_TEXT:与Intent关联的常量字符串,与ACTION_SEND一起使用,以HTML格式文本的形式提供EXTRA_TEXT的替代项。
但请注意:
与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));