无法获取SpannableString的影响 [英] Can not get effect of SpannableString
本文介绍了无法获取SpannableString的影响的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我要在字符串confirm_msg添加量
最终诠释颜色绿色= getResources()的getColor(R.color.green_dark)。
SpannableString spannable =新SpannableString($量+);
spannable.setSpan(新ForegroundColorSpan(颜色绿色),0,($+金额)。长度(),0);
txtConfirmMSG.setText(的getString(R.string.confirm_msg,spannable));
这是在XML字符串:
<字符串名称=confirm_msg>请确认您希望要发送%1 $ S< /串>
解决方案
//尝试这种方法<字符串名称=confirm_msg>请确认您希望要发送%1 $ D $< /串> INT金额= 150000;
txtConfirmMSG.setText(setSpanColor(String.format(getString(R.string.confirm_msg),amount),String.valueOf(amount))); 私人SpannableStringBuilder setSpanColor(
最终字符串str,最后字符串文本){
SpannableStringBuilder SSB =新SpannableStringBuilder(STR); 如果(str.contains(文本)){
ssb.setSpan(新ClickableSpan(){
@覆盖
公共无效的onClick(查看视图){
} @覆盖
公共无效updateDrawState(TextPaint DS){
ds.setColor(getResources()的getColor(R.color.green_dark));
}
},str.indexOf(文本),str.indexOf(文本)
+ text.length(),0);
}
返回SSB; }
I Want to add amount in String "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));
this is string in xml:
<string name="confirm_msg">PLEASE CONFIRM THAT YOU WISH TO SEND A %1$s </string>
解决方案
// 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;
}
这篇关于无法获取SpannableString的影响的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文