2013-08-13 16 views
10

Ich habe eine EditText auf Android Ich würde für die ich möchte, dass alle eingebetteten URLs anklickbar sein. Ich benutzte die Linkify Klasse, die sie blau und unterstrichen hat. Ich kann jedoch nicht herausfinden, wie man sie anklickbar macht.Wie kann ich Links in einem EditText anklickbar machen?

Danke!

Antwort

13

XML:

android:linksClickable="true" 
android:autoLink="web|email" 

JAVA:

TextView textView = (TextView) findViewById(R.id.textViewId); 
textView.setText(Html.fromHtml(html)); 
textView.setMovementMethod(LinkMovementMethod.getInstance()); 
+3

Dies funktioniert nicht für mich. Ich habe die XML-Version ohne Glück benutzt. Der Text sieht wie ein Link aus, ist aber nicht anklickbar. – lowellk

+0

Verwenden Sie 'textView.setText (Html.fromHtml (html));'? – squixy

+0

Sie müssen 'Linkify.addLinks (textView, Linkify.ALL);' dann verwenden. – squixy

10

Für Text bearbeiten ich es geschafft, Links zu erhalten klickbare auf folgende Weise. Zuerst implementiert ich eine benutzerdefinierte MovementMethod als here

Java beschreiben

(Erstellen Sie Ihren Text bearbeiten von XML oder Kontext)

editText.setLinksClickable(true); 
editText.setAutoLinkMask(Linkify.WEB_URLS); 
editText.setMovementMethod(CustomMovementMethod.getInstance()); 
//If the edit text contains previous text with potential links 
Linkify.addLinks(editText, Linkify.WEB_URLS); 

dann zu verwalten, dass die URLs wie Links, während der Benutzer tippt aussehen

editText.addTextChangedListener(new TextWatcher() { 
     @Override 
     public void beforeTextChanged(CharSequence s, int start, int count, int after) { 

     } 

     @Override 
     public void onTextChanged(CharSequence s, int start, int before, int count) { 


     } 

     @Override 
     public void afterTextChanged(Editable s) { 

       Linkify.addLinks(s, Linkify.WEB_URLS); 

     } 
    }); 
+0

Dies ist perfekt. Gibt es eine Möglichkeit, dies zu implementieren, indem man Telefonnummern erkennt und auch hervorhebt? –

+2

Ja @Collinux Die Klasse [Linkify] (http://developer.android.com/reference/android/text/util/Linkify.html) unterstützt 4 Arten: Weblinks, Telefonnummern, E-Mails und Kartenadressen – pleonasmik

Verwandte Themen