2012-11-21 35 views
0

我試圖製作一個自定義的linkfy類,它將在文本字符串中捕獲twitter #hashtags @mentions和URL並讓它啓動另一個活動遠遠我能夠找到一些代碼,但兩個問題是,它捕獲URL和@mentions但不是#hashtags,而不是被另一個我用意向過濾器設置的活動捕獲它,而是啓動瀏覽器,下面我有附上我的代碼,任何幫助將很長的路要走Android linkify如何捕捉@mentions #hashtags我們的URL並讓他們啓動另一個活動

這是我的主要活動

TextView textView = (TextView) findViewById(R.id.tweet); 
    String str = "@aman_vivek how are u #aman_vivek <http://www.google.com> <http://www.tekritisoftware.com>"; 
    textView.setText(str); 
    Pattern wikiWordMatcher = Pattern.compile("(@[a-zA-Z0-9_]+)"); 
    String wikiViewURL = "http://www.twitter.com/"; 
    Linkify.addLinks(textView, wikiWordMatcher, wikiViewURL); 


    Pattern wikiWordMatcher1 = Pattern.compile("\\b(https?|ftp|file)://[-a-zA-Z0-9+&@#/%?=~_|!:,.;]*[-a-zA-Z0-9+&@#/%=~_|]"); 
    Linkify.addLinks(textView, wikiWordMatcher1, null); 

這是我對我的課意圖過濾器應該抓住意向

<activity 
     android:name=".DirectMessageActivity" 
     android:label="@string/app_name" > 
     <intent-filter> 
      <category android:name="android.intent.category.DEFAULT" /> 

      <action android:name="android.intent.action.VIEW" /> 

      <data android:scheme="http://www.twitter.com/" /> 
     </intent-filter> 
    </activity> 
+0

我想你會需要這個意圖過濾器:''。 – dokkaebi

回答

0

抓到URL和@mentions但不

#哈希標籤

那將是因爲你還沒有在你的代碼做一些事情來趕上井號標籤。

,而不是和其他活動我設置了一個意圖過濾它,而不是僅僅啓動瀏覽器

那將是因爲http://www.twitter.com/被抓不是一個方案,你的<data>元素聲稱它是。嘗試使用http作爲方案,www.twitter.com作爲主機。請注意,這意味着您的設備上的用戶嘗試訪問Twitter網址會引發您的應用程序作爲選項,這可能會導致他們用霰彈槍襲擊您。您可能會更好地將它們轉換爲您擁有的其他域,以限制可能發生的碰撞。

1

雖然已經太晚了,但它可能會幫助別人,here是一篇關於如何在android應用中捕獲hashtags然後調用其他活動的文章。

相關問題