这个问题的答案对我的文本非常有效...第一次。我有一些资源文件定义的字符串:
<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"));
如何通过替换保留下划线标签?还是我只需要编程地添加它们?我不确定第一次循环的格式是什么魔术。
每当您致电toString()
时,您都在说:"嘿,摆脱我在那里的所有好格式"。
TextUtils
类具有许多可以直接应用于CharSequence
的实用程序方法,因此应保留格式。在您的情况下,至少对于简单的情况,replace()
方法应起作用。
在您的特定情况下,如果将This app needs PERMISSION to work properly. Update in <u>settings</u>.
更改为This app needs %s to work properly. Update in <u>settings</u>.
并在getString()
调用中提供%s
的值。
getString()
的N参数形式。