2017-04-13 16 views
0

フェイスブックのフィードのように動作する編集テキストがあります。だから私が "www.google.com"のようなものを投稿するとハイパーリンクとして表示されますが、同時に "abcd.abcd"のようなものを投稿するたびにハイパーリンクとしても表示されます。私はリンクを "http"または "www"を追加するときにのみ私のポストを表示したい、これを達成する方法。テキストはURLは下から下線を削除されていない場合は、あなたのテキスト&を比較することができハイパーリンクとして表示されたドットのあるテキスト

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

答えて

2

事前のおかげで、その場合は、この方法により、有効なURLか、

を見つけることができます以下のように、

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); 
    } 

それはTextPaintの「アンダーライン」プロパティを有効にしないURLSpanのカスタマイズバージョンが必要です。

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

このヘルプが必要です。

+0

よろしくお願いします。私はあなたに知らせようとします。再度、感謝します –

1

ただ、これが唯一の有効なURLを検討するあなたのEDITTEXT

Linkify.addLinks(etFeedsText, Linkify.WEB_URLS); 

にこれを追加します。 データを表示しているだけの場合は、テキストビューを使用することもできます。 Edittextは必要ありません。

関連する問題