связать текст для отправки электронной почты?

#android #linkify

#Android #связать

Вопрос:

Я пытаюсь создать интерактивный текст с помощью linkify. При нажатии на имя я хочу вызвать намерение электронной почты. Однако адрес электронной почты не совпадает с адресом ссылки. Есть ли какой-либо способ с помощью linkify выполнить mailto:specificname@gmail.com когда у вас в шаблоне будет «Конкретное имя»? Вот мой пример кода:

 final TextView tx1=new TextView(this);
tx1.setAutoLinkMask(0);
Pattern pattern = Pattern.compile("John Doe");
Linkify.addLinks(tx1, pattern, "mailto:johndoe@gmail.com");
  

Как вы можете видеть здесь, эта проблема заключается в том, что цель электронной почты заполняет тему: «johndoe@gmail.comJohn Доу». Это очевидный результат, но я не знаю, как обрезать текст шаблона в схеме…. Спасибо за вашу помощь.

ps если вы знаете альтернативный способ, не связанный с linkify, вы также получаете кредит 🙂

Ответ №1:

У меня есть ответ без ссылки:

  final TextView tx1 = (TextView) findViewById(R.id.email);
 String name = "John Doe";
 String email = "johndoe@gmail.com";

 tx1.setText(Html.fromHtml("<a href="mailto:" email "">" name "</a>"));
 tx1.setMovementMethod(LinkMovementMethod.getInstance());
  

но, вероятно, есть лучший способ сделать это.

Комментарии:

1. Я рассматривал это, но не без ума от жесткого кодирования текста… Это длинная строка

Ответ №2:

Для этого случая вы можете использовать TransformFilter. Linkify TransformFilter