大木ここに、現時点で私の頭に浮かぶ私の2つの解決策があります:
1. 独自のスキーマを実装します:
http://
最初に、すべて(またはhttps//
、問題をキャッチした URL スキーマ) をカスタム スキーマに置き換える必要がありcustomSchema://
ます。
a.replaceAll("[\\"\']{1}[a-zA-Z]+:\/\/[\\"\']{1}", "customSchema://");
(正規表現はよくわからないので、ここに書いておきます)
次に、 AndroidManifest.xml でアクティビティがこの種のスキーマを処理できることを宣言します。
<intent-filter>
<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />
<data android:scheme="customSchema" />
</intent-filter>
この時点で、クリックされたすべての customSchema://... URL に対してアクティビティが起動されます (他のアプリケーションでも)。
アクティビティの URL を取得して、必要なことを行うだけです。
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
// Get the intent that started this activity
Intent intent = getIntent();
Uri data = intent.getData();
}
クリックを開始するのがあなたのアクティビティである場合は、onNewIntentを参照してください
2.私の意見では、2番目の解決策はこれが最も簡単です。
文字列を別々のものに分割します。目標は、次のように、「word1」、「word2」を別の TextView に分離することです。
<TextView 1 (Victory to the) /><TexTview 2 (word1 GOD) /><TextView 3 (renowned in) /><TextView 4 (word2 all three worlds) />
正規表現を使えば簡単にできます
setTag()
タグ ( )内の TextView 2 と TextView 4 に word1 と word2 を設定して、後で取得することができます。
TextView 2 と TextView 4 で onClick イベントを登録し、それらで必要なことを行います (ここでタグを取得します ( getTag()
)