티스토리 뷰

setSpan()을 이용해 우리가 원하는 내용을 넣었다면 반대로 이 Span 타입을 읽어 들이기도 해야 할 것이다. 이것을 확인 하는 것은 getSpan()을 이용하면 쉽게 확인 가능 하다.

Editable의 getSpan() 를 이용해서 span 값을 읽는다.

Editable bodyText = (Editable)s;
CharacterStyle[] styleSpans = bodyText.getSpans(0, bodyText.length(), CharacterStyle.class);

public abstract T[] getSpans (int start, int end, Class<T> type)

Since: API Level 1

Return an array of the markup objects attached to the specified slice of this CharSequence and whose type is the specified type or a subclass of it. Specify Object.class for the type if you want all the objects regardless of type.


3 번째 인자로 넘겨지는 CharacterSylle 클래스는 Span 클래스를 확인 할 수 있고 그것을 리턴 할 수 있다.그렇기 때문에 getSpans를 사용하면 현재 어떤 span이 존재하고 있는지 확인이 가능하다.

여기서는 이러한 내용을 배열로 리턴해주고 이 배열을 styleSpans란 변수에 넣어준다.

for(CharacterStyle span : styleSpans){
Log.d("YSK","[YSK] span = "+span.toString());
} 

그리고 나서는 위와 같이 처음부터 끝까지 검사하면서 어떤 span이 들어있는지 확인 한다.

11-22 02:23:03.569: DEBUG/YSK(508): [YSK] span = android.text.style.ImageSpan@4418e008

Log Cat 에 찍어보면 위와 같은 결과를 얻게 된다.
댓글
댓글쓰기 폼