/ / Android: hiperłącze podglądu tekstu - android, hiperłącze, widok tekstowy

Android: hiperłącze tekstowe - android, hiperłącze, widok tekstowy

Wiem, że jeśli umieścisz link w widoku tekstowym, zadziała, ale jeśli chcę wyświetlić na przykład:

Google przepełnienie stosu

a nie cały link (tylko tag) Jak mogę aktywować te linki?

Odpowiedzi:

58 dla odpowiedzi № 1

Możesz mieć dwa oddzielne TextView i możesz je odpowiednio dostosować w swoim układzie, jeśli to konieczne:

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

Text2.setText(
Html.fromHtml(
"<a href="http://www.stackoverflow.com">stackoverflow</a> "));
Text2.setMovementMethod(LinkMovementMethod.getInstance());

Następnie, jeśli chcesz usunąć „podkreślenie linku”. Utwórz klasę:

public class URLSpanNoUnderline extends URLSpan {
public URLSpanNoUnderline(String url) {
super(url);
}
@Override public void updateDrawState(TextPaint ds) {
super.updateDrawState(ds);
ds.setUnderlineText(false);
}
}

Następnie dodaj tę metodę do głównej klasy aktywności, w której znajdują się TextViews

private void stripUnderlines(TextView textView) {
Spannable s = new SpannableString(textView.getText());
URLSpan[] spans = s.getSpans(0, s.length(), URLSpan.class);
for (URLSpan span: spans) {
int start = s.getSpanStart(span);
int end = s.getSpanEnd(span);
s.removeSpan(span);
span = new URLSpanNoUnderline(span.getURL());
s.setSpan(span, start, end, 0);
}
textView.setText(s);
}

A potem po prostu wywołaj to po zainicjowaniu TextViews (w twoim onCreate):

stripUnderlines(Text1);
stripUnderlines(Text2);

46 dla odpowiedzi nr 2
TextView t2 = (TextView) findViewById(R.id.textviewidname);
t2.setMovementMethod(LinkMovementMethod.getInstance());

i

<string name="google_stackoverflow"><a href="https://stackoverflow.com/questions/9852184/android-textview-hyperlink?rq=1">google stack overflow</a></string>

Link jest „Android: hiperłącze podglądu tekstu"

a tag to „przepełnienie stosu Google”

Zdefiniuj pierwszy blok kodu w Javie i drugi blok kodu w pliku strings.xml. Pamiętaj też, aby odwołać się do id tekstuView z układu strony w Javie.


12 dla odpowiedzi nr 3

Bardzo prosty sposób to zrobić ---

W swojej działalności--

 TextView tv = (TextView) findViewById(R.id.site);
tv.setText(Html.fromHtml("<a href=http://www.stackoverflow.com> STACK OVERFLOW "));
tv.setMovementMethod(LinkMovementMethod.getInstance());

Wtedy otrzymasz tylko Tag, a nie cały link ..

Mam nadzieję, że to ci pomoże ...


8 dla odpowiedzi № 4

android:autoLink="web" po prostu działa, jeśli masz pełne linki w swoim HTML. Następujące elementy zostaną podświetlone na niebiesko i klikalne:


5 dla odpowiedzi № 5

to powinno działać.

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

and

<TextView android:layout_width="wrap_content"
android:layout_height="wrap_content" android:text="@string/txtCredits"
android:id="@+id/text2"
android:layout_centerInParent="true"
android:layout_marginTop="20dp"></TextView>

2 dla odpowiedzi № 6

To jest moje działające wdrożenie

private void showMessage()
{

lblMessage.setText("");

List<String> messages = db.getAllGCMMessages();

for (int k = messages.size() - 1; k >= 0; --k)
{

String message  =  messages.get(k).toString();
lblMessage.append(message + "nn");

}
Linkify.addLinks(lblMessage, Linkify.ALL);
}

i aby zmienić kolor hiperłączy, edytowałem mój xml do przeglądania tekstu

 android:textColorLink="#69463d"

2 dla odpowiedzi № 7

Wpadłem na ten sam problem i wreszcie znalazłem działające rozwiązanie.

  1. w pliku string.xml zdefiniuj:

    <string name="textWithHtml">The URL link is &lt;a href="http://www.google.com">Google&lt;/a></string>
    

Zastąp znak „<” mniejszym niż znakiem ze znakiem HTML.

  1. W kodzie Java:

    String text = v.getContext().getString(R.string.textWithHtml);
    textView.setText(Html.fromHtml(text));
    textView.setMovementMethod(LinkMovementMethod.getInstance());
    

A TextBox poprawnie wyświetli tekst z klikalnym linkiem kotwiczącym