2015-10-28 2 views
1

Получить строку с сервера "Hello, my e-mail [email protected] write here please". нужно окружить электронную почту с HTML-теги и сделать такие строкиДобавление HTML-тегов вокруг текста в Java

"Hello, my e-mail <a href="mailto:[email protected]">[email protected]</a> write here please" 

Как я могу сделать это в Java? Мне нужно сделать это, потому что мне нужно вставить форматированную строку в TextView.setText(Html.fromHtml())

+2

Вы можете использовать [Linkify] (http://developer.android.com /intl/es/reference/android/text/util/Linkify.html) –

ответ

0

Вы можете добавить android:autoLink="email" в свой тег TextView xml.

+0

отлично работает, спасибо! –

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 protected]</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_.+-][email protected][a-zA-Z0-9-]+\\.[a-zA-Z0-9-.]+").matcher(s); 
    while (m.find()) { 
     emails.add(m.group()); 
    } 

    return emails; 
} 
Смежные вопросы