this question的答案完全适合我的文字......第一次。我有一些资源文件定义的字符串:
<string name="permission_replace">PERMISSION</string>
<string name="warn_permission">This app needs PERMISSION to work properly. Update in <u>settings</u>.</string>
<u>
标记在我第一次显示文本时正常工作,但当我去替换占位符("PERMISSION"
)时,下划线会丢失。以下是我正在进行替换的方式:
warnPermissionText.setText(warnPermissionText.getText().toString().replaceAll(getString(R.string.permission_replace),"some permission text"));
如何通过替换保留下划线标签?或者我只需要以编程方式将它们重新添加进去?我不确定第一轮的格式是什么魔法。
答案 0 :(得分:2)
任何时候你打电话给toString()
,你都会说&#34;嘿,摆脱我在那里的所有好格式&#34;。
The TextUtils
class有许多实用方法可以直接应用于CharSequence
,因此应该保留格式。在您的情况下,the replace()
method应该有效,至少在简单的情况下。
在您的具体情况下,如果您将This app needs PERMISSION to work properly. Update in <u>settings</u>.
更改为This app needs %s to work properly. Update in <u>settings</u>.
并在%s
来电中提供getString()
的值,您也可以使用the N-parameter form of getString()