2017-03-15 16 views
0

私のアンドロイドアプリケーションActivityには、複数のクリック可能なテキストを含むTextViewがあります。私はそれらをクリック可能にするためにLinkifyを使用しました。しかし、問題は彼らがクリック時にウェブURLを呼び出さないということです。これをどうすれば解決できますか?Android:リンクテキストonclickがウェブURLを呼び出さない

以下は私のコードです。

String termsAndConditions = "Terms and Conditions"; 
    String privacyPolicy = "Privacy Policy"; 

    txtLinkfy.setText(
      String.format(
        "By tapping to continue, you are indicating that " + 
          "you have read the Privacy Policy and agree " + 
          "to the Terms and Conditions.", 
        termsAndConditions, 
        privacyPolicy) 
    ); 
    txtLinkfy.setMovementMethod(LinkMovementMethod.getInstance()); 

    Pattern termsAndConditionsMatcher = Pattern.compile(termsAndConditions); 
    Linkify.addLinks(txtLinkfy, termsAndConditionsMatcher,"http://myexample.in/termsofservice"); 
    Pattern privacyPolicyMatcher = Pattern.compile(privacyPolicy); 
    Linkify.addLinks(txtLinkfy, privacyPolicyMatcher, "http://myexample.in/privacypolicy"); 

とのAndroidManifest.xmlで:

<activity android:name=".view.ActivityContinue" 
       android:label="@string/app_name"> 
     <intent-filter> 
      <category android:name="android.intent.category.DEFAULT" /> 
      <action android:name="android.intent.action.VIEW" /> 
      <data android:scheme="Terms and Conditions" /> 
      <data android:scheme="Privacy Policy" /> 
     </intent-filter> 
    </activity> 

答えて

0

を文字列の定義最後に、私はコードの下の私のproblem.Useを解決しました。

Linkify.TransformFilter transformFilter = new Linkify.TransformFilter() { 
     public final String transformUrl(final Matcher match, String url) { 
      return ""; 
     } }; 

    Pattern termsAndConditionsMatcher = Pattern.compile(termsAndConditions); 
    Linkify.addLinks(txtLinkfy,termsAndConditionsMatcher,"http://myexample.in/termsofservice",null,transformFilter); 
    Pattern privacyPolicyMatcher = Pattern.compile(privacyPolicy); 
    Linkify.addLinks(txtLinkfy,privacyPolicyMatcher,"http://myexample.in/privacypolicy",null,transformFilter); 

API「Linkify.addLinks」の動作は、それはあなたがURLの最後にlinkifyしたい文字列を追加し、ようなものです。 ex..ifの場合、テキスト「利用規約」を「http://myexample.in/termsofservice」にリンクします。最終的なURLは "http://myexample.in/termsofserviceTermsと条件"です。私は何も必要ではありません。私はapi transformFilterを使用してヌル文字列を返します。だから最終的なURLは ""です。

0

こんにちは以下の答えが問題なら、私に知らせてご覧ください。

if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) { 
    txtLinkfy.setText(Html.fromHtml(getString(R.string.licence_text), Html.FROM_HTML_MODE_LEGACY)); 
} else { 
    txtLinkfy.setText(Html.fromHtml(getString(R.string.licence_text))); 
} 
txtLinkfy.setMovementMethod(LinkMovementMethod.getInstance()); 

あなたのstrings.xmlに

<string name="licence_text">By tapping to continue, you are indicating that you have read the &lt;a href="http://myexample.in/privacypolicy">Privacy Policy &lt;/a and agree to the &lt;a href="http://myexample.in/termsofservice">Terms and Conditions &lt;/a.</string> 
+0

これはうまくいくかもしれませんが、代わりにLinkrefメソッドを使用してhrefのリンクを使用するのが好きです。 – KJEjava48

関連する問題