2

文字列「単語」を引数として取り、スパンスタイリングを文字列に適用し、それをスパン可能な文字列として返す関数を作成しようとしてい""+insert+""ますTextView. これについてご提供いただけるご支援をよろしくお願いいたします。

これが私がこれまで持っている機能です。

public Spannable fr(String word){
  Spannable WordtoSpan = new SpannableString(word);        
  WordtoSpan.setSpan(new ForegroundColorSpan(Color.BLUE), 0, 
      word.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  WordtoSpan.setSpan(new StyleSpan(android.graphics.Typeface.BOLD), 0, 
      word.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
  return WordtoSpan;
}

スパン可能なインラインをテキストと一緒に表示するコード。

TextView tview = (TextView) findViewById(R.id.accents_view);
tview.setText(Html.fromHtml("<strong>Text String</strong> "+fr("style_this"));

アプリケーションがスタイリングなしでテキストをロードするか、アプリがクラッシュします。何が間違っているのかわかりませんが、fromHtml テキストとスパン可能オブジェクトの混合に関係があると思います。回避策はありますか?

を削除してHtml.fromHtml()、テキスト全体を関数でラップするとfr()機能します。太字の青いテキストが表示されます。しかし、特定の単語だけにスタイルを設定できるようにする必要があります...多言語サポートのために、vars をハードコーディングする代わりに、string.xml ファイルから vars を参照できると便利です。

4

1 に答える 1

0

参考になるかと思いますが、

TextView tview = (TextView) findViewById(R.id.accents_view);
tview.setText(Html.fromHtml("<font color='blue'>Text</font> " 
    + "<font color='red'>String</font>"));
于 2013-12-25T03:27:08.017 に答える