1

TextViewでコンポーネントを使用していますListView。テキストにリンクがあり、TextViewそれらをクリックしてブラウザを開きたい場合があります。私のテキスト内のすべてのリンクにはタグがあります:

これは私のテキストの例です。これはリンクです

その目的のために私は使用します:

textView.setText(Html.fromHtml(someTextString)); textView.setMovementMethod(LinkMovementMethod.getInstance()); textView.setAutoLinkMask(Linkify.WEB_URLS); textView.setLinksClickable(true);

すべて問題ありませんが、テキストを入力すると:

これはサンプルテキストです。リンクのもの

その場合link.thing、リンクとして選択されました。<a></a>タグ間のクリックのみ可能なリンクを作成するにはどうすればよいですか?

4

2 に答える 2

1

追加

android:text="@string/Your_String_Contain"

今、これは重要な役割を果たしています

<string name="Your_String_Contain">This is an example of my text  <a href="http://www.yourlink.com">This is link</a></string>

setMovementMethod次に、電話するだけです。

TextView Tv_App_Link=(TextView)findViewById(R.id.Your_Textview_Id);
Tv_App_Link.setMovementMethod(LinkMovementMethod.getInstance());
于 2015-11-19T08:38:24.200 に答える
0

このようにしてリンクを設定すると、リンクが自動的に検出されます

  String myHtmlStr = "<a href=www.google.com>click here</a>";

            setTextViewHTML(myTextView, myHtmlStr);

これを達成するために実装できるこのメソッド

 protected void setTextViewHTML(TextView text, String html) {
            CharSequence sequence = Html.fromHtml(html);
            SpannableStringBuilder strBuilder = new SpannableStringBuilder(sequence);
            URLSpan[] urls = strBuilder.getSpans(0, sequence.length(), URLSpan.class);
            for (URLSpan span : urls) {
                makeLinkClickable(strBuilder, span);
            }
            text.setText(strBuilder);
        } 

protected void makeLinkClickable(SpannableStringBuilder strBuilder, final URLSpan span) {

            int start = strBuilder.getSpanStart(span);
            int end = strBuilder.getSpanEnd(span);
            int flags = strBuilder.getSpanFlags(span);
            TouchableSpan touchableSpan = new TouchableSpan() {

                @Override
                public void onClick(View widget) {

                  //your logic
                }
            };
            touchableSpan.setURLSpan(span);
            strBuilder.setSpan(touchableSpan, start, end, flags);
            strBuilder.removeSpan(span);
        }
于 2015-11-19T08:33:10.543 に答える