텍스트뷰의 색상을 바꿔주려고하는데요. 동작이 제 생각과 다른데
왜 이렇게되는지 잘 모르겠네요..
아래와 같이 구성했을경우 결과물은
가나다 라마바사 아자차카 타파하
위 형태로 출력이되어야하는데,
가나다 라마바사 아자차카 타파하
이렇게 전체가 빨간색으로 되어버리는데요..
제생각엔 String.valueOf(str.chatAt(i)) 이렇게하면
가,나,다, ,라, 이런식으로 한글자씩 가져오기때문에
결국 setSpan에서 범위가 0,1이 되어야하는게 맞고, 그대로 builder에 append해주면
해당 글자만 색상이 변경되어야할꺼라고생각하는데 동작은 그렇지 않아서요..알기쉽게 설명해주시면 감사하겠습니다..ㅠ
String str = "가나다 라마바사 아자차카 타파하";
SpannableStringBuilder builder = new SpannableStringBuilder();
for(int i=0; i<str.length(); i++){
SpannableString ss = new SpannableString(String.valueOf(str.charAt(i)));
if (i == 3){
ss.setSpan(new ForegroundColorSpan(Color.parseColor("#3BC651")), 0,1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
builder.append(ss);
}else{
ss.setSpan(new ForegroundColorSpan(Color.RED), 0,1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE);
builder.append(ss);
}
}
textview.setText(builder);