好的,我很抱歉这个可怕的头衔,我不知道怎么回事。我使用spannablestringbuilder来进行自定义字体着色。
这是第一个代码段
protected void onStop() {
try{
clientskt.close();
}catch(final Exception ii){
Server.this.runOnUiThread(new Runnable() {
@Override
public void run() {
SpannableStringBuilder errorsocketclose = new SpannableStringBuilder("[ERROR] "+ii+" [ERROR]\n");
errorsocketclose.setSpan(new ForegroundColorSpan(Color.parseColor("#B00000")), 0,errorsocketclose.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
errorsocketclose.setSpan(new ForegroundColorSpan(Color.parseColor("#000000")),8, ii.toString().length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
editText.append(errorsocketclose);
}
});
}
super.onStop();
}
并且它将是最后一个错误,并且它将是红色之前的九个空格。
正在使用中)[错误]
现在如果我把它放在
中int letshopto = ii.toString().length() + 9;
只是[ERROR]会像预期的那样变红。
我在不同的设置中遇到了同样的问题,我必须用+ 9来修复它。
同样写这个我意识到我可以删除int并且只是将+ 9放在行中。像这样。
ForegroundColorSpan(Color.parseColor("#000000")),8,ii.toString().length() + 9, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
任何人都知道我怎么能把它变得与众不同,因为我认为.length()会完成它。
答案 0 :(得分:0)
尝试类似:
String error = "[ERROR]";
int start = error.length() + ii.toString().length();
int end = start + error.length();
在这种情况下,我知道您想要做的就是为错误字符串着色