如何在Android的文本视图中使电话号码可点击

Posted

技术标签:

【中文标题】如何在Android的文本视图中使电话号码可点击【英文标题】:How to make phone numbers clickable in a textview in Android 【发布时间】:2019-09-07 02:07:57 【问题描述】:

我有一个包含电子邮件和电话号码的文本图。我想要的效果是,当用户点击电子邮件时,它会打开默认的电子邮件应用程序,当用户点击电话号码时,应用程序会在拨号器中将其拉起。使用以下代码:

XML:

<TextView
            android:layout_
            android:layout_
            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"/>

Java:

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:careers@bradfordcollege.ac.uk\">careers@bradfordcollege.ac.uk</a>"));

当我运行我的应用程序时,只有电子邮件是可点击的并且按照我希望的方式工作,电话号码不可点击或突出显示。

但是,我注意到如果我从 setText java 代码中删除电子邮件地址,然后运行应用程序。电话号码变成蓝色并带有下划线,好像可以点击一样,但是当我点击它时,什么也没有发生。

我怎样才能让它工作?

另外,我在我的清单文件以及我的模拟器设备上授予了 CALL_PHONE 权限。

【问题讨论】:

我认为这是一个重复的问题。试试这个链接***.com/questions/2734270/… 你来自哪里?你是哪一国的电话号码的前缀? SPAN> 【参考方案1】:

根据电子邮件 (.ac.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: careers@bradfordcollege.ac.uk");

在你的xml中,你只需要这个属性

android:autoLink="all"

【讨论】:

【参考方案2】:

您必须将您的国家代码添加到电话号码中。 像这样:

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:careers@bradfordcollege.ac.uk\">
careers@bradfordcollege.ac.uk</a>"));

还必须在 android manifest 文件中添加 CALL PHONE 权限。 uses-permission android:name="android.permission.CALL_PHONE".

【讨论】:

以上是关于如何在Android的文本视图中使电话号码可点击的主要内容,如果未能解决你的问题,请参考以下文章

在 viewCell,UIViewCollection 中使按钮可点击

如何在ionic 5中使文本输入中的图标可点击

如何在 react-native 中使文本的某些部分可点击并且某些部分具有不同的文本颜色

如何使用 React JS 在 Material UI 中使整个 Card 组件可点击?

如何在 iPhone SDK 中使 tableviewcell 文本在触摸时可编辑?

如何在可点击的文本视图中设置超链接? Android Java [重复]