2010-12-03 80 views
2

我有一個TextView,我設置爲:安卓機器人:自動鏈接= 「網」 不支持.ME域名

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

有沒有一種方法來指定正確的URL爲autoLink?

謝謝!

回答

0

您的代碼只對您的網址「http://www.domain2.me \ n」有問題,它應該是有效的DNS名稱,例如.com/.net等而不是.me。

+0

這是一個有效的頂部Google更新級域名。見[互聯網頂級域名列表](http://en.wikipedia.org/wiki/List_of_Internet_top-level_domains)可憐的被遺忘的黑山。 Android是否接受「.us」和「.uk」頂級域名? – 2010-12-03 05:27:47

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]))"; 

因此,似乎每個版本從IANA最新域