2017-04-13 5 views
0

Ich habe einen Text bearbeiten, der sich wie Feeds in Facebook verhält. Wenn ich also etwas wie "www.google.com" poste, wird es als Hyperlink angezeigt. Aber zur gleichen Zeit, wenn ich etwas wie "abcd.abcd" poste, zeigt es mir auch einen Hyperlink. Ich möchte meinen Beitrag nur als Link anzeigen, wenn ich "http" oder "www" hinzufüge. Vielen Dank im VorausText mit Punkt als Hyperlink angezeigt

<EditText 
       android:id="@+id/etFeedsText" 
       android:layout_width="match_parent" 
       android:layout_height="match_parent" 
       android:minHeight="50dp" 
       android:maxLength="2000" 
       android:layout_marginBottom="25.8dp" 
       android:layout_marginLeft="14dp" 
       android:layout_marginTop="8.3dp" 
       android:hint="@string/enter_your_post" 
       android:background="@color/white" 
       android:inputType="textMultiLine|textNoSuggestions" 
       android:textColor="@color/feeds_text" 
       android:textSize="13.3sp" />  

Antwort

2

Sie Ihren Text vergleichen können & kann durch dieses Verfahren, wenn sich eine gültige URL oder nicht

herausfinden, ob der Text nicht eine URL ist dann von unten die unterstrichenen entfernen wie,

if(!isValidUrl(yourUrl)){ 
    stripUnderlines(TextView textView) 
} 


private void stripUnderlines(TextView textView) { 
     Spannable s = new SpannableString(textView.getText()); 
     URLSpan[] spans = s.getSpans(0, s.length(), URLSpan.class); 
     for (URLSpan span: spans) { 
      int start = s.getSpanStart(span); 
      int end = s.getSpanEnd(span); 
      s.removeSpan(span); 
      span = new URLSpanNoUnderline(span.getURL()); 
      s.setSpan(span, start, end, 0); 
     } 
     textView.setText(s); 
    } 

Es erfordert eine angepasste Version von URLSpan, die nicht die „unterstreichen“ Eigenschaft TextPaint nicht aktiviert:

private class URLSpanNoUnderline extends URLSpan { 
     public URLSpanNoUnderline(String url) { 
      super(url); 
     } 
     @Override public void updateDrawState(TextPaint ds) { 
      super.updateDrawState(ds); 
      ds.setUnderlineText(false); 
     } 
    } 

Hoffe diese Hilfe!

+0

hey danke wilson. Ich werde versuchen, es dich wissen zu lassen. Danke noch einmal –

1

Fügen Sie einfach diese zu Ihrem EditText

Linkify.addLinks(etFeedsText, Linkify.WEB_URLS); 

Dies gilt nur URLs berücksichtigen wird. Sie können auch eine Textansicht verwenden, wenn Sie nur die Daten anzeigen. Edittext ist nicht notwendig.