Android linkify如何捕捉@sinetions#hashtags,并让他们启动另一项活动

Android linkify如何捕捉@sinetions#hashtags,并让他们启动另一项活动,android,regex,textview,intentfilter,linkify,Android,Regex,Textview,Intentfilter,Linkify,我正在尝试创建一个自定义linkfy类,它将捕获文本字符串中的twitter#hashtags@提及和URL,并让它启动另一个活动。到目前为止,我已经找到了一些代码,但两个问题是,它捕获URL和@提及,但不捕获#hashtags,而不是被我有意设置的另一个活动捕获过滤它,而不是启动浏览器,下面我附上了我的代码,任何帮助都会有很大帮助 这是我的主要活动 TextView textView = (TextView) findViewById(R.id.tweet); String str

我正在尝试创建一个自定义linkfy类,它将捕获文本字符串中的twitter#hashtags@提及和URL,并让它启动另一个活动。到目前为止,我已经找到了一些代码,但两个问题是,它捕获URL和@提及,但不捕获#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);
TextView TextView=(TextView)findViewById(R.id.tweet);
String str=“@aman_vivek你好吗?”;
textView.setText(str);
Pattern-wikiWordMatcher=Pattern.compile(“@[a-zA-Z0-9_]+”);
字符串wikiViewURL=”http://www.twitter.com/";
addLinks(textView、wikiWordMatcher、wikiViewURL);
Pattern wikiWordMatcher1=Pattern.compile(\\b(https?| ftp |文件)://[-a-zA-Z0-9+&@#/%?=~ |!:,.;]*[-a-zA-Z0-9+&@#/%=~ |];
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>

它捕获URL和@提及,但不捕获#hashtags

这可能是因为您在代码中没有做任何事情来捕获hashtag

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


那是因为
http://www.twitter.com/
不是一个方案,您的
元素声称它是一个方案。尝试对方案使用
http
,对主机使用
www.twitter.com
。请注意,这意味着用户在您的设备上访问Twitter URL的任何尝试都会将您的应用程序作为一个选项打开,这可能会导致他们用猎枪追击您。您最好将它们转换到您拥有的其他域,以限制可能的冲突。

虽然为时已晚,但它可能会帮助其他人,这是一篇关于如何在android应用程序中捕获哈希标记,然后调用另一个活动的文章。

我认为您需要此意向筛选器: