Понадобилось:
1. поместить в TextView получаемый с сервера текст, отформатировнный под html
2. сделать так, чтобы при нажатии на ссылку, содержащуюся в этом тексте, открывался бы браузер - и показывал бы содержимое, нажатой ссылке соответствующее.
Очевидное решение использовать
android:autoLink="web"
android:linksClickable="true"
привело только к тому, что ссылки выделялись красивым синим цветом, но при нажатии на них ничего не происходило.
Гуглопоиск выдал ссылку с таким работающим решением:
1. не использовать очевидное решение, оставить TextView в самом простом виде (без android:autoLink и android:linksClickable):
<TextView
android:id="@+id/txtView"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
2. сделать следующее:
textView.setMovementMethod(LinkMovementMethod.getInstance());
3. после чего можно спокойно присваивать текст:
textView.setText(Html.fromHtml(text))
Упаковал всё это в утилити-метод
public static void showHtml(TextView textView, String text) {
textView.setText(Html.fromHtml(text));
textView.setMovementMethod(LinkMovementMethod.getInstance());
}
и красота.
1. поместить в TextView получаемый с сервера текст, отформатировнный под html
2. сделать так, чтобы при нажатии на ссылку, содержащуюся в этом тексте, открывался бы браузер - и показывал бы содержимое, нажатой ссылке соответствующее.
Очевидное решение использовать
android:autoLink="web"
android:linksClickable="true"
привело только к тому, что ссылки выделялись красивым синим цветом, но при нажатии на них ничего не происходило.
Гуглопоиск выдал ссылку с таким работающим решением:
1. не использовать очевидное решение, оставить TextView в самом простом виде (без android:autoLink и android:linksClickable):
<TextView
android:id="@+id/txtView"
android:layout_width="fill_parent"
android:layout_height="wrap_content" />
2. сделать следующее:
textView.setMovementMethod(LinkMovementMethod.getInstance());
3. после чего можно спокойно присваивать текст:
textView.setText(Html.fromHtml(text))
Упаковал всё это в утилити-метод
public static void showHtml(TextView textView, String text) {
textView.setText(Html.fromHtml(text));
textView.setMovementMethod(LinkMovementMethod.getInstance());
}
и красота.
Комментариев нет:
Отправить комментарий