问题描述
我是 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 (将#修改为@)