2011-06-15 98 views
2

結束時,我想一個鏈接到一個TextView,並有下面的代碼:Linkify將文本添加到鏈接

TextView textview = (TextView) findViewById(R.id.mytext); 
Pattern myPattern = Pattern.compile("WordToBeLinked"); 
String link = "http://mydomain.com/something"; 
Linkify.addLinks(textview, myPattern, link); 

所以一切工作,因爲它應該:單詞「WordToBeLinked」鏈接,它打開該鏈接的瀏覽器,但不知何故Linkify添加「WordToBeLinked」的URL,這樣就是所謂的URL看起來像這樣:

http://mydomain.com/somethingWordToBeLinked 

有人可以告訴我我做錯了什麼? 謝謝

回答

4

你必須使用TransformFilter。希望這個幫助。

  TextView textview = (TextView) findViewById(R.id.mytext); 
      textview .setText("WordToBeLinked"); 

      TransformFilter mentionFilter = new TransformFilter() { 
       public final String transformUrl(final Matcher match, String url) { 
        return new String("http://mydomain.com/something"); 
       } 
      }; 

      Pattern pattern = Pattern.compile("."); 
      String scheme = ""; 
      Linkify.addLinks(textview, pattern, scheme, null, mentionFilter); 

由於在你的情況下沒有模式和方案,所以他們只是佔位符。

0

這就是the docs of linkify中描述的確切行爲。

如果你想通過一個鏈接來替換你的話然後執行:

,你可以使用重載的方法,並使用變換過濾器重寫最終網址。