从服务器"Hello, my e-mail email@email.com write here please"
获取字符串。
需要使用HTML标记环绕电子邮件并制作此类字符串
"Hello, my e-mail <a href="mailto:email@email.com">email@email.com</a> write here please"
如何在Java中创建它?
我需要制作它,因为我需要在TextView.setText(Html.fromHtml())
答案 0 :(得分:0)
您可以在TextView xml标记上添加android:autoLink="email"
。
答案 1 :(得分:0)
您可以使用Matcher
在String
内找到所有电子邮件,然后replaceAll
来编辑String
,如下所示:
yourString = getHtmlString(yourString);
private String getHtmlString(String s) {
List<String> emails = getEmailsFromString(s);
if (emails.size() < 1) {
return s;
}
String result = s;
for (String email : emails) {
String toReplace = "<a href=\"" + email + "\">email@email.com</a>";
result.replaceAll(email, toReplace);
}
return result;
}
private List<String> getEmailsFromString(String s) {
List<String> emails = new ArrayList<>();
Matcher m = Pattern.compile("[a-zA-Z0-9_.+-]+@[a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+").matcher(s);
while (m.find()) {
emails.add(m.group());
}
return emails;
}