Как сделать номера телефонов кликабельными в текстовом представлении в Android

1

У меня есть текстовое представление, которое содержит адрес электронной почты и номер телефона. Мой желаемый эффект состоит в том, что когда пользователь нажимает на электронную почту, он открывает приложение электронной почты по умолчанию, а когда пользователь нажимает на телефонный номер, приложение вытягивает его в номеронабирателе. С кодом ниже:

XML:

<TextView
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/careers_guidance"
            android:id="@+id/careers_guidance_text"
            android:layout_marginStart="20dp"
            android:layout_marginEnd="20dp"
            android:layout_marginTop="5dp"
            android:linksClickable="true"
            android:textColorLink="#0000EE"
            android:autoLink="all"/>

Джава:

careersGuidance = view.findViewById(R.id.careers_guidance_text);
    careersGuidance.setText(Html.fromHtml("<p>Help with choosing the right course and with thinking about where this might take you in the future.</p>" +
            "<p>Tel: <a href=\"tel:01274433043\">01274 433043</a></p>Email: <a href=\"mailto:[email protected]\">[email protected]</a>"));

Когда я запускаю свое приложение, только электронная почта кликабельна и работает так, как я хочу, чтобы она работала, номер телефона не кликабелен и не выделен.

Изображение 174551

Тем не менее, я заметил, что если я удаляю адрес электронной почты из Java-кода setText и запускаю приложение. Номер телефона становится синим и подчеркивается, как если бы он был кликабелен, но когда я нажимаю на него, ничего не происходит.

Как я могу заставить это работать?

Кроме того, у меня есть разрешения CALL_PHONE, предоставленные в моем файле манифеста, а также на моем устройстве эмулятора.

Теги:
textview

2 ответа

1

Из электронного письма (.co.uk) я полагаю, что вы из Великобритании. Вам просто нужно добавить префикс номера телефона вашей страны, чтобы заменить 0, то есть +44. И вам не нужно использовать Html.fromHtml.

careersGuidance.setText("Help with choosing the right course and with thinking about where this might take you in the future.\n\nTel: +441274433043\n\nEmail: [email protected]");

В вашем XML, вам просто нужно это свойство

android:autoLink="all"
0

Вы должны добавить свой код страны в тел. Как это:

careers_guidance_text.setText(Html.fromHtml("
<p>Help with choosing the right course and with thinking about where this might take you in the future.</p>"
+"<p>Tel: <a href=\"tel:+4401274433043\">+441274 433043</a></p>
Email: <a href=\"mailto:[email protected]\">
[email protected]</a>"));

Также необходимо добавить разрешение CALL PHONE в файл манифеста Android. uses-permission android:name="android.permission.CALL_PHONE".

Ещё вопросы

Сообщество Overcoder
Наверх
Меню