如何在 TextView 上使用预定义的主题和正文使 XML 字符串资源电子邮件可点击

How to make XML string resource email clickable with predefined Subject and Body on TextView

Namaste全部,

我正在尝试实现一个解决方案,在单击包含 HTML 标签的字符串 XML 中的电子邮件 ID 时,我们应该打开系统中可用的电子邮件应用程序的 Intent Chooser,然后在电子邮件中撰写屏幕 mailTosubjectbody 应该被填充。

to - recipient@xyz.com
subject - xyz....
body - xyz.....

我试过使用 android:autoLink="email" 属性,它使电子邮件可以点击,但它只预填充了收件人的电子邮件 ID,没有其他内容。

有没有其他方法可以在不使用第三方库的情况下实现所需的解决方案?

您必须添加一个 link 如下:

mailto:recipient@xyz.com?subject=xyz subject&body=xyz body

此 link 将打开 Intent for Mail 应用程序并将包含预填主题和正文。 (参考:https://css-tricks.com/snippets/html/mailto-links/

你可以有一个字符串如下:

<string name="link_str"><a href="mailto:recipient@xyz.com?subject=xyz subject&body=xyz body">Send email</a>  </string>

然后按照

中的指定使TextView link可用

大家合十礼,

下面是可行的解决方案,没有使用 android:autoLink="email" 属性。

strings.xml

<string name="str_email_included">Mail us at - &lt;br/> &lt;a href=\'mailto:hello@xyz.com?subject=Subject1&amp;body=Body1\'>hello@xyz.com&lt;/a></string>

Java

textView.setText(Html.fromHtml(getString(R.string.str_email_included)));
textView.setMovementMethod(LinkMovementMethod.getInstance());

Kotlin

textView.text = HtmlCompat.fromHtml(getString(R.string.str_email_included), HtmlCompat.FROM_HTML_MODE_LEGACY)
textView.movementMethod = LinkMovementMethod.getInstance()

上面的 movementMethod 完成了工作,所以点击电子邮件 ID,Intent Chooser 将打开,并且 mailTo、主题和正文根据需要得到 pre-populated。