#android #hyperlink #textview #scrollview #spanned
#Android #гиперссылка #textview #scrollview #составные
Вопрос:
У меня есть TextView
встроенный в a RelativeLayout
, встроенный в a ScrollView
, и я загружаю Spanned
в него текстовый объект, созданный из некоторого HTML-кода. Я установил android:autoLink
для атрибута значение TextView
true, и я проверил в другой части приложения, что я могу нажимать на ссылки в тексте, и они приведут меня на целевой веб-сайт. Разница лишь в том, что на этот раз TextView
является дочерним элементом a ScrollView
. Это портит android:autoLink
процесс или я действительно что-то здесь упускаю?
XML-код:
<ScrollView xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_height="fill_parent" android:layout_width="fill_parent"
android:padding="10dp" android:background="#FFF">
<RelativeLayout android:layout_width="fill_parent"
android:layout_height="wrap_content" android:id="@ id/RLNewsItem">
<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:layout_alignParentLeft="true"
android:id="@ id/TVText" android:textColor="#000"
android:layout_below="@ id/TVTitle" android:linksClickable="true"
android:autoLink="web|email|map"></TextView>
</RelativeLayout>
</ScrollView>
Java-код:
Spanned newsText = Html.fromHtml(htmlsource, this, null);
text.setText(newsText);
Ответ №1:
Попробуйте этот код в String.xml :
<string-array name="description">
<item> <Data> <![CDATA[ Check this <u>Redirect to Next Activity</u> ]]></Data> </item>
Код в классе Java:
ArrayList<String> title_list = new ArrayList<String>();
String[] description_Array = getResources().getStringArray(R.array.description);
String categoryAndDesc = null;
for(String cad : description_Array) {
categoryAndDesc = cad;
title_list.add(categoryAndDesc);
}
CharSequence sequence = Html.fromHtml(categoryAndDesc);
seperator_view.setText(strBuilder);
seperator_view.setMovementMethod(LinkMovementMethod.getInstance());
Комментарии:
1.
EditText.setMovementMethod(LinkMovementMethod.getInstance());
сработало для меня, спасибо! Тем не менее, я не использовал остальную часть ответа, но спасибо за эту последнюю строку 🙂