У меня есть текстовое представление, которое содержит адрес электронной почты и номер телефона. Мой желаемый эффект состоит в том, что когда пользователь нажимает на электронную почту, он открывает приложение электронной почты по умолчанию, а когда пользователь нажимает на телефонный номер, приложение вытягивает его в номеронабирателе. С кодом ниже:
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>"));
Когда я запускаю свое приложение, только электронная почта кликабельна и работает так, как я хочу, чтобы она работала, номер телефона не кликабелен и не выделен.
Тем не менее, я заметил, что если я удаляю адрес электронной почты из Java-кода setText и запускаю приложение. Номер телефона становится синим и подчеркивается, как если бы он был кликабелен, но когда я нажимаю на него, ничего не происходит.
Как я могу заставить это работать?
Кроме того, у меня есть разрешения CALL_PHONE, предоставленные в моем файле манифеста, а также на моем устройстве эмулятора.
Из электронного письма (.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"
Вы должны добавить свой код страны в тел. Как это:
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"
.