Java连接两个可跨越字符串的问题

问题描述

我是 android/java 开发新手,遇到以下问题。 我试图在为它们着色后连接两个可跨越的字符串。 问题是我得到了第一个字符串 (st1_all=st1_orig+st1_tran) 使用所需的颜色,但不是第二个 (st2_all=st2_orig+st2_tran)。 你知道有什么问题吗? Belwo你找到了代码。 谢谢

//strings length
int st1_orig_length  = st1_orig.length();
int st1_tran_length  = st1_tran.length();
int st1_tot_length   = st1_orig_length+st1_tran_length;

int st2_orig_length  = st2_orig.length();
int st2_tran_length  = st2_tran.length();
int st2_tot_length   = st2_orig_length+st2_tran_length;

//strings concatenation
String st1_both = st1_orig+st1_tran;
String st2_both = st2_orig+st2_tran;

//spannable characteristics,i.e. colors
ForegroundColorSpan fcsRed   = new ForegroundColorSpan(Color.RED);
ForegroundColorSpan fcsGreen = new ForegroundColorSpan(Color.GREEN);

SpannableString st1_all = new SpannableString(st1_both);
SpannableString st2_all = new SpannableString(st2_both);
st1_all.setSpan(fcsRed,st1_orig_length,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
st1_all.setSpan(fcsGreen,st1_tot_length,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
st2_all.setSpan(fcsRed,st2_orig_length,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);
st2_all.setSpan(fcsGreen,st2_tot_length,Spanned.SPAN_EXCLUSIVE_EXCLUSIVE);

//final text
//CharSequence st_all = TextUtils.concat(st1_all,st2_all,st1_all);
myText.setText(TextUtils.concat(st1_all,st2_all));

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...