2017-05-24 3 views
0

linkifyを使用してテキストビューでURLと電子メールをハイライト表示すると、最初のレンダリングで正しく機能しますが、テキストを変更しようとすると正しく動作しません。
私のテキストビューでは、私はspannableを使用して、より多くの文字を見ることができます。今、それは仕事だまでテキスト
linkifyが動作しないときにテキストが更新されます

private static SpannableStringBuilder getTextToShown(Activity activity, String text, boolean showMore) { 

    SpannableStringBuilder sb; 

    final ForegroundColorSpan fcs = new ForegroundColorSpan(activity.getResources().getColor(R.color.cyan_mostly_black_light)); 
    String textToShow; 
    if (!showMore) { 
     textToShow = text + " " + activity.getResources().getString(R.string.see_less); 
     sb = new SpannableStringBuilder(textToShow); 
     sb.setSpan(fcs, text.length(), textToShow.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); 
     sb.setSpan(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD), text.length(), textToShow.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    } else { 
     textToShow = text.substring(0, NUMBER_OF_CHAR_TO_SHOWN - 1) + " " + activity.getResources().getString(R.string.see_more); 
     sb = new SpannableStringBuilder(textToShow); 
     sb.setSpan(fcs, NUMBER_OF_CHAR_TO_SHOWN, textToShow.length(), Spannable.SPAN_INCLUSIVE_INCLUSIVE); 
     sb.setSpan(new android.text.style.StyleSpan(android.graphics.Typeface.BOLD), NUMBER_OF_CHAR_TO_SHOWN, textToShow.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); 
    } 
    return sb; 
    } 

を追加し、私は次のよう

if (postModel.getObject().getContent().length() > 140) { 
      post_data.setText(getTextToShown(activity, postModel.getObject().getContent(), true)); 
      showMore = true; 
      post_data.setOnClickListener(new View.OnClickListener() { 
      @Override 
      public void onClick(View view) { 
       if (showMore) { 
       post_data.setText(getTextToShown(activity, postModel.getObject().getContent(), false)); 
       showMore = false; 
       } else { 
       post_data.setText(getTextToShown(activity, postModel.getObject().getContent(), true)); 
       showMore = true; 
       } 
      } 
      }); 
     } else { 
      post_data.setText(postModel.getObject().getContent()); 
     } 

でそれを使用すると、私はlinkifyによって追加 次の私のスパン機能は、この

post_data.setMovementMethod(LinkMovementMethod.getInstance()); 
post_data.setLinkTextColor(Color.BLUE); 
Linkify.addLinks(post_data, Linkify.WEB_URLS | Linkify.EMAIL_ADDRESSES | Linkify.PHONE_NUMBERS); 

を追加します問題はありませんが問題はありませんが、クリックしてみるとtextviewでさらに詳しく見ることができますが、textviewでは新しいテキストを表示しますが、ハイライトリンクやemaiは表示しません私は、UIスレッドでそれを実行しようとするが、私は同じ結果を得る。どんな助け? XML

android:textColorLink="@color/blue.pure" 
android:autoLink="all" 

と、使用中、次のlinkifyを削除し、唯一の追加により

答えて

0

は、私はそれを解決します。

関連する問題