2012-04-20 9 views
15

Come dare autolink per una parte del testo? Ad esempio: il mio testo all'interno di TextView è "Per favore clicca qui per aprire questa pagina web". Voglio mostrare il link solo per il testo "qui". E dovrei aprire la pagina web onclick del testo "qui" ma non ovunque con TextView. Mi aiuti per favore.Autolink all'interno di un TextView in Android

risposta

28

inserire una stringa 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> 

E lo si può utilizzare in textView in questo modo:

<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

Per qualche motivo sopra il codice non funziona correttamente. Quindi, aggiungere il codice di seguito anche,

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

Questa dovrebbe essere la risposta accettata – Madbreaks

+5

Dai miei test questo non rende effettivamente cliccabile il collegamento ipertestuale. Lo disegna correttamente (lo rende blu con una sottolineatura) ma non puoi realmente cliccarlo. Sembra che l'unico modo sia qui: http://stackoverflow.com/a/2746708/708906 –

+0

Ho provato anche questa risposta. Non funziona davvero. –

7

Le visualizzazioni di testo sono in grado di visualizzare HTML, che risolve il problema. Avvolgere ciò che si desidera cliccabile in un collegamento ipertestuale:

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

Devo anche impostare onClickListener per TextView in questo caso? –

+0

No, non lo fai. –

+3

Questo è il peggior approccio possibile che ho visto, mi dispiace. In che modo questa stringa appare come una risorsa, in XML? 'Linkify',' ClickableSpan', 'android: autoLink'. Scegli il tuo preferito, ma non usare HTML come questo. – Madbreaks

1

sintassi HTML Usa in strings.xml:

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

proprietà Set TextView di avere collegamenti cliccabili e auto collegamento.

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

utilizzo semplice URL in strings.xml:

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

E nel codice Java scrivere questo:

<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 "' non consente un collegamento che dice ["qui"] (http://www.example.com/); semplicemente consente all'URL stesso di funzionare come un collegamento, come in: [http://www.example.com/](http://www.example.com/). – dokkaebi

1

È possibile verificare con il seguente codice:

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