2017-01-30 5 views
2

this answer을 이해하려고 시도하면서 StringBuilderEditable의 차이점을 이해하지 못했습니다. 이 이미지 (손으로 그린 ​​빨간색 원을 뺀)는 그 대답에서 비롯된 것입니다.Android StringBuilder와 편집 가능

enter image description here

둘 다 append, delete, insertreplace 텍스트 방법이있다. Editable은 인터페이스 인 반면 StringBuilder은 실제 클래스입니다. 하지만 TextView에서 textView.getEditableText()으로 Editable을 얻을 수 있습니다. 이는 인터페이스 인 경우 이상하게 보입니다. 무엇보다 구체적인 구현은 무엇입니까? 또한 Editable은 범위를 가질 수 있으며 StringBuilder은 그렇지 않음을 알 수 있습니다.

나는 그 차이를 이해하는 데 가깝다 고 생각하지만 조금 더 설명 할 수 있습니다. 나는이 질문이 이미 요구 된 곳을 찾을 수 없다는 것에 놀랐다. 그래서 나는 지금 그것을 묻는다. 즉 다시

:

  • EditableStringBuilder와의 차이점은 무엇

    ?
  • 언제 다른 쪽을 사용해야합니까?
+1

편집 가능한 HTML과 같은 마크 업을 저장할 수 있습니다. StringBuilder는 일반 텍스트 만 보유합니다. 인터페이스 *라면 이상하게 보입니다. – Blackbelt

+0

실제로'TextView'에서 돌아 오는 객체가 실제로'SpannableStringBuilder'입니까? 그렇다면'SpannableStringBuilder myString = textView.getEditableText();'라고 쓰면 왜 호환되지 않는 타입 에러가 발생합니까[email protected] – Suragch

+0

내 질문에 진화 할 수 있습니다 :'SpannableStringBuilder'와'Editable'의 차이점은 무엇입니까? – Suragch

답변

1

StringBuilder와 Editable의 차이점은 무엇입니까?

Editablehtml과 같은 마크 업을 보유 할 수 있습니다. StringBuilder은 일반 텍스트 만 보유합니다.

하지만 다시는 인터페이스 인 경우 이상한 것 같다 textView.getEditableText()와 텍스트 뷰에서 편집을 얻을 수 있습니다. 구체적인 구현 방법은 무엇입니까?

이상하지 않습니다. Editable을 반환합니다. 구체적인 구현 방법은 텍스트를 설정하는 방법에 따라 다릅니다.

실제로 TextView에서 다시 가져 오는 개체는 SpannableStringBuilder입니까? 그렇다면 호환되지 않는 유형을 얻는 이유는 무엇입니까 SpaneableStringBuilder를 작성하면 오류가 발생합니다. myString = textView.getEditableText();

그렇지 않을 수도 있습니다. 당신이 아는 것은 그것이 편집 가능한 것입니다. A SpannableStringBuilderEditable이지만 EditableSpannableStringBuilder이 아니므로 getEditableText의 반환 값을 내림차순으로 변환하지 않으면 SpannableStringBuilder으로 지정할 수 없습니다. I