2013-09-02 11 views
5

devo il link nel mio TextView:Perché il collegamento non funziona nella visualizzazione testo?

<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" 
    xmlns:tools="http://schemas.android.com/tools" 
    ... 

    <TextView 
     android:layout_width="wrap_content" 
     android:layout_height="wrap_content" 
     android:autoLink="all" 
     android:linksClickable="true" 
     android:text="@string/app_description" /> 
</RelativeLayout> 

Il collegamento è una parte delle risorse:

<?xml version="1.0" encoding="utf-8"?> 
<resources> 
    ... 
    <string name="app_description">Some text with the <a href="http://www.example.com">link</a>.</string> 
</resources> 

In qualche modo il link non funziona. Quale potrebbe essere una ragione? Viene visualizzato come un collegamento. Ma fare clic su non apre il browser.

Codice classe:

@Override 
protected void onCreate(Bundle savedInstanceState) { 
    super.onCreate(savedInstanceState); 
    setContentView(R.layout.activity_main); 
+0

hai fatto provato con Android: cliccabile = "true"? –

+0

Vedere se [Come faccio a fare clic su collegamenti in una TextView] (http://stackoverflow.com/questions/2734270/how-do-i-make-links-in-a-textview-clickable) o [Collegamenti in TextView ] (http://stackoverflow.com/questions/4790746/links-in-textview) aiuta le domande. –

+0

Prova questo: android: autoLink = "web" –

risposta

6

è possibile utilizzare collegamento http questo modo:

mLink = (TextView) findViewById(R.id.link); 
     if (mLink != null) { 
     mLink.setMovementMethod(LinkMovementMethod.getInstance()); 
    } 

In XML:

android:autoLink="all" 
+0

Grazie. La tua risposta insieme a http://stackoverflow.com/a/6892799/604388 ha aiutato. –

+0

Non funziona con caratteri personalizzati. Qualche indizio? – ADM

1

TextView yourTextView = (TextView) findViewById (R.id .yourTextViewId);

yourTextView.setMovementMethod(LinkMovementMethod.getInstance()); 
    Spannable spans = (Spannable) yourTextView.getText(); 

    ClickableSpan clickSpan = new ClickableSpan() { 

     @Override 
     public void onClick(View v) { 
      switch (v.getId()) { 

      case R.id.yourTextViewId : 
       Intent localIntent = new Intent(); 
       localIntent.setAction("android.intent.action.VIEW"); 
       localIntent.setData(Uri.parse("YOUR LINK")); 
       startActivity(localIntent); 
       break; 
      } 

     } 
    }; 
    spans.setSpan(clickSpan, 0, spans.length(), 
      Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
0

enter image description here

seguito il codice sta lavorando per me.

String html2 = "<br><br>Fire - <b><a href=http://www.google.com>google</a> </b></br></br>"; 
     text.append(Html.fromHtml(html2)); 
     text.setMovementMethod(LinkMovementMethod.getInstance()); 
0

Rimuovi android: autoLink dalla definizione del layout. È eccessivo nel caso in cui il tuo caso. Wrap stringa di risorsa con <![CDATA[ ]]> come questo:

<?xml version="1.0" encoding="utf-8"?> <resources> ... <string name="app_description"><![CDATA[Some text with the <a href="http://www.example.com">link</a>.]]></string> </resources>

+1

Sembra che la tua risposta sia tagliata: puoi modificare la risposta per completarla? –

Problemi correlati