Program Tip

android : 링크를 클릭 할 수있는 textview의 html

programtip 2020. 11. 6. 19:06
반응형

android : 링크를 클릭 할 수있는 textview의 html


이 질문에 이미 답변이 있습니다.

내에서 a-htmltag를 사용 TextView하지만 탭해도 아무 일도 일어나지 않습니다.

URL로 웹 브라우저를 열려면 어떻게해야합니까?


이 시도

txtTest.setText( Html.fromHtml("<a href=\"http://www.google.com\">Google</a>"));
txtTest.setMovementMethod(LinkMovementMethod.getInstance());

기억하세요 : android : autoLink = "web"속성을 함께 사용하지 마세요. LinkMovementMethod가 작동하지 않기 때문입니다.

SDK 24+에 대한 업데이트이 기능 Html.fromHtmlAndroid N(SDK v24)에서 지원 중단 되었으므로 다음 방법을 사용하십시오.

    String html = "<a href=\"http://www.google.com\">Google</a>";
    Spanned result;
    if (android.os.Build.VERSION.SDK_INT >= android.os.Build.VERSION_CODES.N) {
        result = Html.fromHtml(html,Html.FROM_HTML_MODE_LEGACY);
    } else {
        result = Html.fromHtml(html);
    }
    txtTest.setText(result);
    txtTest. setMovementMethod(LinkMovementMethod.getInstance());

다음은 플래그 목록입니다.

FROM_HTML_MODE_COMPACT = 63;
FROM_HTML_MODE_LEGACY = 0;
FROM_HTML_OPTION_USE_CSS_COLORS = 256;
FROM_HTML_SEPARATOR_LINE_BREAK_BLOCKQUOTE = 32;
FROM_HTML_SEPARATOR_LINE_BREAK_DIV = 16;
FROM_HTML_SEPARATOR_LINE_BREAK_HEADING = 2;
FROM_HTML_SEPARATOR_LINE_BREAK_LIST = 8;
FROM_HTML_SEPARATOR_LINE_BREAK_LIST_ITEM = 4;
FROM_HTML_SEPARATOR_LINE_BREAK_PARAGRAPH = 1;

업데이트 2 와 함께 android.text.util.Linkify, 그것은 클릭 할 수있는 텍스트 뷰를 만들기 위해 더욱 쉽게 :

TextView textView =...
Linkify.addLinks(textView, Linkify.WEB_URLS);

이런 식으로 할 수 있습니다.

mTextView = (TextView) findViewById(R.id.textView);
String text = "Visit my developer.android.com";
mTextView.setText(text);
// pattern we want to match and turn into a clickable link
Pattern pattern = Pattern.compile("developer.android.com");
// prefix our pattern with http://
Linkify.addLinks(mTextView, pattern, "http://")

도움이 되었기를 바랍니다. 자세한 내용은이 블로그 게시물 을 참조하십시오. (내 것이 아니고 어차피 관련이 없습니다. 여기에 정보 제공 목적으로 만 게시 됨).

참고 URL : https://stackoverflow.com/questions/4438713/android-html-in-textview-with-link-clickable

반응형