11

TextViewハイパーリンクが機能しない理由。

カスタム内でハイパーリンクを使用しますdialog box

ハイパーリンクは表示されません。

私が間違っているところ。どのようにそれを解決しますか。ガイダンスをください。

XMLコードは

<TextView
android:id="@+id/google_Link"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_gravity="center"
android:gravity="center"
android:padding="10dip"
android:textSize="20dip"
android:linksClickable="true"  
android:autoLink="all"
android:textColorLink="#306EFF"
android:text="" />

Androidコードは

TextView googleLink = ( TextView ) layout.findViewById( R.id.google_Link );
googleLink.setClickable(true);
googleLink.setMovementMethod(LinkMovementMethod.getInstance());
googleLink.setText( Html.fromHtml( "<a href=`http://www.google.co.in`>Google</a>" ) );

Androidマニフェストコードは

<action android:name="android.intent.action.VIEW" />
<category android:name="android.intent.category.DEFAULT" />
<category android:name="android.intent.category.BROWSABLE" />

少し早いですがお礼を。

4

6 に答える 6

16

このリンクのみを置き換えてください。機能します。

TextView textView=(TextView) findViewById(R.id.link);
textView.setClickable(true);
String linkTxt=getResources().getString(R.string.link);
textView.setMovementMethod(LinkMovementMethod.getInstance());
textView.setText(Html.fromHtml( linkTxt));

これをstrings.xmlに追加します。

<string name="link">&lt;a href=http://www.google.co.in&gt;Google&lt;/a&gt;</string>
于 2012-07-10T12:49:55.547 に答える
2

この問題の最善の解決策は次のとおりです。まず、Textviewを作成します。

<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:id="@+id/link"
android:layout_alignParentBottom="true"
android:layout_alignParentEnd="true"
android:text="@string/developed_by_bracecodes"/>

次に、以下のようにstrings.xmlからTextviewにテキストを追加します。

<string name="developed_by_bracecodes"><a href="http://www.bracecodes.com">Developed by Bracecodes</a>  </string>

注意:リンクの前にhttp://を追加することを忘れないでください

次に、Javaコードに次の行を追加します。

TextView link = findViewById(R.id.link);
link.setMovementMethod(LinkMovementMethod.getInstance());

ハッピーコーディング!ありがとう!

于 2018-04-06T13:33:15.813 に答える
1

hrefをに設定できないため、機能していませんTextView

onClickメソッドにこれを含むOnClickListenerを設定する必要があります。

String url = "http://www.google.co.in";
Intent i = new Intent(Intent.ACTION_VIEW);
i.setData(Uri.parse(url));
startActivity(i);

その後、リスナーを次のTextViewように設定できます。googleLink.setOnClickListener(myListener);

次に、アプリを再度実行すると、クリックが正しく処理されるはずです。

于 2012-07-10T12:36:27.133 に答える
0
<TextView 
android:layout_width="fill_parent"
android:layout_height="fill_parent" 
android:id="@+id/hyperlink" 
android:text="@string/hyperlink"
android:textColorLink="@color/quantum_yellow"
**android:autoLink="web"**
/>

autoLink=webリンクテキストをクリック可能なハイパーリンクとして自動定義するために使用します。また、を使用してその色を決定することができますtextColorLink

于 2020-09-21T21:29:15.283 に答える
0

あなたの解決策はここにあります。https://github.com/saket/Better-Link-Movement-Method

implementation 'me.saket:better-link-movement-method:1.1'



 message?.message?.let {
            chatMessageTextView.setText(HtmlCompat.fromHtml(it.trim(), HtmlCompat.FROM_HTML_MODE_LEGACY),TextView.BufferType.SPANNABLE)
        }

  chatMessageTextView.movementMethod = BetterLinkMovementMethod.newInstance().apply {
        setOnLinkClickListener { _, url ->
            // Handle click or return false to let the framework handle this link.

       
            handleMessageLink(itemView.context,url)
            true
        }
    }

     <TextView
            android:id="@+id/chat_message_text_view"
            android:layout_width="wrap_content"
            android:layout_height="wrap_content"
            android:layout_below="@+id/files_layout"
            android:layout_marginStart="@dimen/space_ultra_small"
            android:text="@string/text_small"
            android:textColor="@color/black"
            android:padding="@dimen/space_ultra_small"
            android:textColorLink="@color/sky_blue"
            android:textSize="@dimen/text_size_large" />
于 2021-05-06T08:35:05.517 に答える
0
public class HtmlTextView extends TextView {
    public HtmlTextView(Context context) {
        super(context);
    }

    public HtmlTextView(Context context, @Nullable AttributeSet attrs) {
        super(context, attrs);
    }

    public HtmlTextView(Context context, @Nullable AttributeSet attrs, int defStyleAttr) {
        super(context, attrs, defStyleAttr);
    }

    @Override
    public void setText(CharSequence text, BufferType type) {
        Spannable spannable = linkifyHtml(String.valueOf(text), Linkify.ALL);
        super.setText(spannable, type);
    }

    private static Spannable linkifyHtml(String html, int linkifyMask) {
        Spanned text = Html.fromHtml(html);
        URLSpan[] currentSpans = text.getSpans(0, text.length(), URLSpan.class);

        SpannableString buffer = new SpannableString(text);
        Linkify.addLinks(buffer, linkifyMask);

        for (URLSpan span : currentSpans) {
            int end = text.getSpanEnd(span);
            int start = text.getSpanStart(span);
            buffer.setSpan(span, start, end, 0);
        }
        return buffer;
    }
}

HtmlTextView mText = view.findViewById(R.id.text); mText.setMovementMethod(LinkMovementMethod.getInstance()); mText.setText( "<a href => http://www.google.comGoogle");

于 2021-08-16T19:16:57.107 に答える