android: html в textview с возможностью перехода по ссылке [дубликат]
этот вопрос уже есть ответ здесь:
- обрабатывать ссылку textview нажмите в моем приложении для android 13 ответов
Я использую a-htmltag в моем TextView
, но когда я нажимаю на нее ничего не происходит.
Как я могу заставить его открыть веб-браузер с url?
2 ответа:
попробуй такое
txtTest.setText( Html.fromHtml("<a href=\"http://www.google.com\">Google</a>")); txtTest.setMovementMethod(LinkMovementMethod.getInstance());
помните : Не используйте с ним атрибут android:autoLink="web". потому что это вызывает LinkMovementMethod не работает.
обновление для SDK 24+ Функция
Html.fromHtml
устаревший наAndroid 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;
вы можете сделать это таким образом;
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://")
надеюсь, это помогает. Пожалуйста, смотрите это блоге для сведения. (Это не мое, и я не связан с ним в любом случае. Опубликовано здесь только для информационных целей).