【问题标题】:Android TextView Linkify problem with phone numbers and application version numberAndroid TextView Linkify 电话号码和应用程​​序版本号问题
【发布时间】:2012-08-07 20:33:25
【问题描述】:

我对 TextView 和 autoLink 功能有疑问。

我的应用程序中有一个关于屏幕,其中包含一些信息,例如支持电话号码、电子邮件地址、网站 URL 和应用程序版本,例如 01.01.01

在 textView 上设置 autoLink="all" 后,所有值都可以正常链接 - 除了版本号 01.01.01 也链接为电话号码。

有没有办法从链接中排除这个文本片段?

【问题讨论】:

    标签: android android-widget


    【解决方案1】:

    只是不要使用自动链接,链接代码中的文本。使用 Linkify 类非常容易。

    private static final String phoneRegex="123\.456\.789";//you can just place your support phone here
    private static final Pattern phoneMatcher = Pattern.compile(phoneRegex);
    
    public static void linkify(TextView text){
        Linkify.addLinks(text, Linkify.EMAIL_ADDRESSES);
        Linkify.addLinks(text, Linkify.WEB_URLS);
        Linkify.addLinks(text, phoneMatcher, "tel:");
    }
    

    您不需要修改 url 和电子邮件表达式。但是您应该为电话指定自己的表达式。它不需要是匹配所有音素的表达式。它只需要与您的特定支持电话相匹配。

    【讨论】:

    • 如果您想匹配我们的电话号码,您可以将其用于正则表达式:((\(\\d{3}\) ?)|(\\d{3}-))? \\d{3}-\\d{4}
    【解决方案2】:

    将版本放到另一个 TextView 中?

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-06-13
      • 1970-01-01
      • 1970-01-01
      • 2011-07-23
      • 2021-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多