无法获取SpannableString的影响 [英] Can not get effect of SpannableString

查看:183
本文介绍了无法获取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屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆