#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