0

Twitter の #hashtags @mentions と URL をテキスト文字列でキャッチし、これまでに別のアクティビティを起動するカスタム linkfy クラスを作成しようとしていますが、コードを見つけることができましたが、URL と @ をキャッチするという 2 つの問題があります。 #ハッシュタグではなく言及し、別のアクティビティにキャッチされる代わりに、インテントフィルターで設定したブラウザーを起動するだけです。コードを添付した下に、どんな助けも大いに役立ちます

これが私の主な活動です

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

2 に答える 2

1

手遅れですが、他の誰かを助けるかもしれませんが Android アプリでハッシュタグをキャッチして別のアクティビティを呼び出す方法に関する記事を次に示します。

于 2013-10-08T05:30:48.917 に答える
0

URL と @メンションはキャッチしますが、#ハッシュタグはキャッチしません

これは、ハッシュタグをキャッチするためにコードで何もしていないためです。

そして、インテントフィルターで設定した別のアクティビティにキャッチされる代わりに、ブラウザーを起動するだけです

それはhttp://www.twitter.com/スキームではなく、あなたの<data>要素がそうであると主張しているためです。httpスキームとwww.twitter.comホストに使用してみてください。これは、デバイス上のユーザーが Twitter の URL にアクセスしようとすると、オプションとしてアプリが表示されることを意味することに注意してください。衝突の可能性を制限するために、所有している他のドメインに変換する方がよい場合があります。

于 2012-11-21T22:03:54.807 に答える