2012-04-20 13 views
15

¿Cómo dar autolink para una parte de textview? Por ejemplo: mi texto dentro de TextView es "Haga clic aquí para abrir esta página web". Quiero mostrar el enlace solo para el texto "aquí". Y debería abrir esa página web haciendo clic en el texto "aquí", pero no en ningún lado de TextView. Por favor, ayúdame.Autolink dentro de un TextView en Android

Respuesta

28

Deja una cadena en 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> 

Y se puede usar en Textview así:

<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" /> 

EDITAR

Por alguna razón, el código anterior no funciona correctamente. Por lo tanto, añadir a continuación código también,

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

Esta debería ser la respuesta aceptada – Madbreaks

+5

Por mis pruebas, esto no hace que se pueda hacer clic en el hipervínculo. Lo estiliza correctamente (lo hace azul con un subrayado) pero no puede hacer clic en él. Parece que el único camino está aquí: http://stackoverflow.com/a/2746708/708906 –

+0

Intenté esta respuesta también. Realmente no funciona. –

7

Las textviews son capaces de mostrar HTML, lo que resuelve su problema. Envuelva lo que quiere hacer clic en un hipervínculo:

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

¿Necesito configurar onClickListener para TextView también en este caso? –

+0

No, no es así. –

+3

Este es el peor enfoque posible que he visto, lo siento. ¿Cómo se ve esa cadena como un recurso, en XML? 'Linkify',' ClickableSpan', 'android: autoLink'. Elija su favorito, pero no use HTML así. – Madbreaks

1

sintaxis HTML en uso strings.xml:

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

propiedades Conjunto TextView tener enlaces se puede hacer clic y concesionarios enlace.

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

uso simple URL en strings.xml:

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

Y en código Java escribir esto:

<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 "' no permite un enlace que dice ["aquí"] (http://www.example.com/); solo permite que la url misma funcione como un enlace, como en: [http://www.example.com/](http://www.example.com/). – dokkaebi

1

puede probarlo con el código siguiente:

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