Android链接如何捕获@mentions #hashtags我们的URL并让他们启动另一个活动

时间:2012-11-21 21:25:16

标签: android regex textview intentfilter linkify

我正在尝试创建一个自定义的linkfy类,它将在文本字符串中捕获twitter #hashtags @mentions和URL并让它启动另一个活动到目前为止我已经能够找到一些代码但是这两个问题是它捕获的URL和@mentions但不是#hashtags,而不是被我设置的意图过滤器的其他活动捕获而只是启动浏览器,下面我附上了我的代码,任何帮助都会有很长的路要走

这是我的主要活动

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

这是我的类的Intent过滤器,它应该捕获Intent

<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>

2 个答案:

答案 0 :(得分:1)

虽然为时已晚,但可能对其他人有所帮助,here是一篇关于如何在Android应用中捕获主题标签然后再调用其他活动的文章。

答案 1 :(得分:0)

  

它捕获URL和@mentions但不捕获#hashtags

那是因为你没有在代码中做任何事情来捕捉主题标签。

  

而不是被另一个我使用意图过滤器设置的活动捕获,而只是启动浏览器

那是因为http://www.twitter.com/不是方案,而您的<data>元素声称它是。尝试使用http作为方案,使用www.twitter.com作为主机。请注意,这意味着用户在您的设备上访问Twitter网址的任何尝试都会将您的应用视为一个选项,这可能会导致他们使用霰弹枪。您可以更好地将它们转换为您拥有的其他域,以限制可能的冲突。