Android使电话号码可点击,自动检测

CQM*_*CQM 30 java sdk android click textview

当我在网站上使用Android并阅读电子邮件时,我注意到我可以点击地址加载到谷歌地图,或点击电话号码来打电话,或点击电子邮件并发送电子邮件.

Web上的这些元素以各种方式进行格式化,因此有一些内置函数可以检测这些内容.

如何在我的应用程序中允许此操作?我有一个页面以纯文本显示联系信息,我希望用户能够点击.

我是否绝对需要为每个textview创建clicklistener,或者是否需要启用系统功能?

Amt*_*t87 60

使用

android:autoLink="phone"
Run Code Online (Sandbox Code Playgroud)

在xml布局文件中的textView中

  • 机器人:自动链接="手机" (8认同)

zie*_*ikk 27

Android有一个明确用于此目的的实用程序:Linkify

TextView noteView = (TextView) findViewById(R.id.noteview);
noteView.setText(someContent);
Linkify.addLinks(noteView, Linkify.ALL);
Run Code Online (Sandbox Code Playgroud)

另请参阅:https://android-developers.googleblog.com/2008/03/linkify-your-text.html

  • 您可以编辑答案以更清楚Linkifi是什么.我的第一个想法是,这是一个第三方库,我自动跳过你的答案.但Linkify真的是终极解决方案!:) (11认同)

Kei*_*ino 20

import android.text.util.Linkify;

Linkify.addLinks(text, Linkify.PHONE_NUMBERS);
Run Code Online (Sandbox Code Playgroud)


Yuv*_*dey 5

你可以像这样在 TextView 中使用它,

设置android:autoLink="phone"如下,

<TextView
    android:layout_width="fill_parent"
    android:id="@+id/text"
    android:layout_height="wrap_content"
    android:autoLink="phone"
    android:gravity="center"
    android:linksClickable="true"
    android:text="@string/txtCredits" />
Run Code Online (Sandbox Code Playgroud)

然而,

由于某种原因,上面的代码并不总是有效。因此,还添加以下代码,

TextView textView = (TextView) findViewById(R.id.text);
textView.setMovementMethod(LinkMovementMethod.getInstance());
Run Code Online (Sandbox Code Playgroud)