2016-12-19 15 views
0

への回答this questionへの回答は、私のテキストには完璧に機能します...初めてです。私はいくつかのリソースファイルに定義された文字列を持っている:<u>タグが正しく、私はテキストを表示する最初の時間を仕事文字列全体にまたがるAndroidの下線付きテキスト

<string name="permission_replace">PERMISSION</string> 
<string name="warn_permission">This app needs PERMISSION to work properly. Update in <u>settings</u>.</string> 

を、私は私のプレースホルダを置き換えるために行くとき("PERMISSION")下線は失われます。交換の方法は次のとおりです。

warnPermissionText.setText(warnPermissionText.getText().toString().replaceAll(getString(R.string.permission_replace),"some permission text")); 

置き換えによって下線タグを保持するにはどうすればよいですか?または、プログラムでプログラムを追加するだけでいいですか?私は最初に何の魔法がフォーマットを行うのか分からない。

答えて

2

いつでもtoString()と呼んでいるときは、「ねえ、私がそこに持っていた素晴らしいフォーマットをすべて取り除いてください」と言います。

The TextUtils classには、CharSequenceに直接適用できる多くのユーティリティメソッドがあり、フォーマットを保持する必要があります。あなたの場合、少なくとも単純なケースでは、the replace() methodはうまくいくはずです。あなたの特定のケースで

は、あなたも、あなたがThis app needs %s to work properly. Update in <u>settings</u>.からThis app needs PERMISSION to work properly. Update in <u>settings</u>.を変更した場合、the N-parameter form of getString()使用しgetString()呼び出しで%sに値を供給することができます。

関連する問題