1

次の問題に直面しました:

私のアプリは、サーバーから HTML 形式のデータを受け取ります。TextView 内に表示します。テキストには確かにリンクを含めることができます ( <a href="http://www.google.com">)。リンクをクリック可能にすることは、たとえばこの質問の説明に従って問題になりません。

mTvContent = (TextView) mView.findViewById(R.id.tv_content);
mTvContent.setMovementMethod(LinkMovementMethod.getInstance());

上記のコードは、サーバーが HTML スキーム識別子のないリンクを送信するまで完全に機能します。たとえば、<a href="www.google.com">

そのようなリンクをクリックすると、明らかな例外が発生します。

E/AndroidRuntime(10646): android.content.ActivityNotFoundException: インテントを処理するアクティビティが見つかりません { act=android.intent.action .VIEW dat=www.google.com (エクストラがあります) } E/AndroidRuntime(10646): Android .app.Instrumentation.checkStartActivityResult(Instrumentation.java:1683) E/AndroidRuntime(10646): android.app.Instrumentation.execStartActivity(Instrumentation.java:1554) で E/AndroidRuntime(10646): android.app.Activity.startActivityForResult で(Activity.java:3409) E/AndroidRuntime(10646): android.app.Activity.startActivityForResult(Activity.java:3370) で E/AndroidRuntime(10646): android.support.v4.app.FragmentActivity.startActivityForResult(FragmentActivity で) .java:817) E/AndroidRuntime(10646): android.app.Activity.startActivity(Activity.java:3580) で E/AndroidRuntime(10646): android.app で。Activity.startActivity(Activity.java:3548) E/AndroidRuntime(10646): android.text.style.URLSpan.onClick(URLSpan.java:62) E/AndroidRuntime(10646): android.text.method.LinkMovementMethod. onTouchEvent(LinkMovementMethod.java:212) E/AndroidRuntime(10646): android.widget.TextView.onTouchEvent(TextView.java:7770) E/AndroidRuntime(10646): android.view.View.dispatchTouchEvent(View.java: 7198)

実際、受信した HTML コードを解析してリンクを「修復」することはできますが、この考えは好きではありません。誰かが「壊れた」リンクを処理する方法を提案できますか?

4

0 に答える 0