我想在字符串“confirm_msg”
中添加金额 final int colorGreen = getResources().getColor(R.color.green_dark);
SpannableString spannable = new SpannableString("$" +amount);
spannable.setSpan(new ForegroundColorSpan(colorGreen), 0, ("$" + amount).length(), 0);
txtConfirmMSG.setText(getString(R.string.confirm_msg, spannable));
这是xml中的字符串:
<string name="confirm_msg">PLEASE CONFIRM THAT YOU WISH TO SEND A %1$s </string>
答案 0 :(得分:2)
// try this way
<string name="confirm_msg">PLEASE CONFIRM THAT YOU WISH TO SEND A %1$d$ </string>
int amount = 150000;
txtConfirmMSG.setText(setSpanColor(String.format(getString(R.string.confirm_msg),amount),String.valueOf(amount)));
private SpannableStringBuilder setSpanColor(
final String str,final String text) {
SpannableStringBuilder ssb = new SpannableStringBuilder(str);
if (str.contains(text)) {
ssb.setSpan(new ClickableSpan() {
@Override
public void onClick(View view) {
}
@Override
public void updateDrawState(TextPaint ds) {
ds.setColor(getResources().getColor(R.color.green_dark));
}
}, str.indexOf(text), str.indexOf(text)
+ text.length(), 0);
}
return ssb;
}
答案 1 :(得分:0)
最好使用HTML在Spannable
中实现不同的颜色。
您可以检查答案:Highlighting Text Color using Html.fromHtml() in Android?