Android:android:autoLink =“web”不支持.me域名

时间:2010-12-03 00:28:14

标签: android

我有一个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指定正确的网址?

谢谢!

2 个答案:

答案 0 :(得分:2)

发现问题。

我使用的是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更新最新的域名

答案 1 :(得分:0)

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