2012-04-20 25 views
15

Wie autolink für einen Teil von Textview geben? Zum Beispiel: Mein Text in TextView ist "Bitte klicken Sie hier, um diese Webseite zu öffnen". Ich möchte den Link nur für den Text "hier" anzeigen. Und ich sollte diese Webseite auf den Text "hier" öffnen, aber nicht auf TextView. Bitte hilf mir.Autolink in einem TextView in Android

Antwort

28

Setzen Sie einen String in string.xml

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    <string name="txtCredits">Support: <a href="http://www.stackoverflow.com">click here</a></string> 
</resources> 

Und Sie können es verwenden, in Textview wie folgt aus:

<TextView 
     android:layout_width="fill_parent" 
     android:id="@+id/text" 
     android:layout_height="wrap_content" 
     android:autoLink="web" 
     android:gravity="center" 
     android:linksClickable="true" 
     android:text="@string/txtCredits" /> 

EDIT

Aus irgendeinem Grund funktioniert der obige Code nicht richtig. So fügen Sie auch unter Code,

TextView t2 = (TextView) findViewById(R.id.text); 
t2.setMovementMethod(LinkMovementMethod.getInstance()); 
+0

Dies sollte die angenommene Antwort sein – Madbreaks

+5

Von meinen Tests dies macht nicht wirklich den Hyperlink anklickbar. Es formatiert es korrekt (macht es blau mit einer Unterstreichung), aber Sie können es nicht wirklich klicken. Es scheint, der einzige Weg ist hier: http://stackoverflow.com/a/2746708/708906 –

+0

Ich versuchte diese Antwort auch. Es funktioniert nicht wirklich. –

7

Textansichten können HTML anzeigen, was Ihr Problem löst. Wickeln Sie, was Sie in einen Hyperlink klickbare wollen:

String html = "My link is <a href=\"http://google.com\">here</a>"; 
myTextView.setText(Html.fromHtml(html)); 
+0

Muss ich onClickListener für TextView auch in diesem Fall setzen? –

+0

Nein, das tust du nicht. –

+3

Hier geht es um den denkbar schlechtesten Ansatz, sorry. Wie sieht diese Zeichenfolge in XML als Ressource aus? 'Linkify',' ClickableSpan', 'android: autoLink'. Wählen Sie Ihren Favoriten, aber verwenden Sie HTML nicht so. – Madbreaks

1

Verwenden Sie HTML-Syntax in strings.xml:

<string name="test">Click &lt;a href="http://vtuhtan.info"&gt;here&lt;/a&gt;</string> 

Set Textview Eigenschaften Links klickbar und Auto-Link zu haben.

TextView tv = findViewById(R.id.textView); 
tv.setText(Html.fromHtml(getResources().getString(R.string.test))); 
0

Verwendung einfache URL in strings.xml:

<string name="autolink_val">Plese Click Here : http://www.google.com</string> 

Und in Java-Code schreibt dies:

<TextView android:id="@+id/linkVal" 
      android:layout_width="wrap_content" 
      android:layout_height="wrap_content" 
      android:autoLink="web" 
      android:text="@string/autolink_val1"/>` 
+2

'android: autoLink =" web "' erlaubt keinen Link, der ["hier"] sagt (http://www.example.com/); Es erlaubt nur die URL selbst als Link zu fungieren, wie in: [http://www.example.com/](http://www.example.com/). – dokkaebi

1

Sie können es mit folgendem Code testen:

<TextView 
    android:layout_width="wrap_content" 
    android:layout_height="wrap_content" 
    android:text="http://www.yahoo.com" 
    android:autoLink="web" 
    /> 
Verwandte Themen