【问题标题】:Android: android:autoLink="web" does not support .me domainsAndroid:android:autoLink="web" 不支持 .me 域
【发布时间】:2010-12-03 00:28:13
【问题描述】:

我有一个 TextView 设置为:

android:autoLink="web"

但是当我添加以下文字时:

TextView text = (TextView) findViewById(R.id.TextView01);
        text.setText("Test\n" +
           "http://www.domain1.net\n" +
           "\n" +
           "http://www.domain2.me\n"");

只有第一个域是热链接的,因为另一个是 .me

有没有办法为 autoLink 指定正确的 url?

谢谢!

【问题讨论】:

    标签: android


    【解决方案1】:

    找到问题了。

    我使用的是 2.1 模拟器,并且在 2.1 发布时似乎不支持该域。 在 2.2 上,链接看起来不错。

    我下载了 Android 源代码,看看他们是如何做到的,这就是我发现的:

        /**
     *  Regular expression to match all IANA top-level domains for WEB_URL.
     *  List accurate as of 2010/02/05.  List taken from:
     *  http://data.iana.org/TLD/tlds-alpha-by-domain.txt
     *  This pattern is auto-generated by frameworks/base/common/tools/make-iana-tld-pattern.py
     */
    public static final String TOP_LEVEL_DOMAIN_STR_FOR_WEB_URL =
        "(?:"
        + "(?:aero|arpa|asia|a[cdefgilmnoqrstuwxz])"
        + "|(?:biz|b[abdefghijmnorstvwyz])"
        + "|(?:cat|com|coop|c[acdfghiklmnoruvxyz])"
        + "|d[ejkmoz]"
        + "|(?:edu|e[cegrstu])"
        + "|f[ijkmor]"
        + "|(?:gov|g[abdefghilmnpqrstuwy])"
        + "|h[kmnrtu]"
        + "|(?:info|int|i[delmnoqrst])"
        + "|(?:jobs|j[emop])"
        + "|k[eghimnprwyz]"
        + "|l[abcikrstuvy]"
        + "|(?:mil|mobi|museum|m[acdeghklmnopqrstuvwxyz])"
        + "|(?:name|net|n[acefgilopruz])"
        + "|(?:org|om)"
        + "|(?:pro|p[aefghklmnrstwy])"
        + "|qa"
        + "|r[eosuw]"
        + "|s[abcdeghijklmnortuvyz]"
        + "|(?:tel|travel|t[cdfghjklmnoprtvwz])"
        + "|u[agksyz]"
        + "|v[aceginu]"
        + "|w[fs]"
        + "|(?:xn\\-\\-0zwm56d|xn\\-\\-11b5bs3a9aj6g|xn\\-\\-80akhbyknj4f|xn\\-\\-9t4b11yi5a|xn\\-\\-deba0ad|xn\\-\\-g6w251d|xn\\-\\-hgbk6aj7f53bba|xn\\-\\-hlcj6aya9esc7a|xn\\-\\-jxalpdlp|xn\\-\\-kgbechtv|xn\\-\\-zckzah)"
        + "|y[etu]"
        + "|z[amw]))";
    

    看来每次发布 GOOGLE 都会从 iana 更新最新域

    【讨论】:

      【解决方案2】:

      您的代码是正确的,唯一的问题是您的网址“http://www.domain2.me\n”,它应该是有效的 DNS 名称,例如.com/.net 等而不是 .me。

      【讨论】:

      猜你喜欢
      • 2011-11-24
      • 2012-01-16
      相关资源
      最近更新 更多