이 인터페이스의 목적은 무엇입니까?
CharSequence
일련의 문자를 나타내는 표준 Java 인터페이스입니다. String
가장 일반적으로 사용되는 콘크리트 구현 한 CharSequence
다음, StringBuilder
.
Spanned
는 CharSequence
텍스트의 일부에 적용 할 서식을 나타내는 "범위" 가있는 입니다. 이러한 범위는 수정할 수 없습니다.
Spannable
은 Spanned
범위를 수정하는 기능 (서식을 추가하거나 제거하기 위해)을 추가하지만 텍스트 자체를 수정하는 것은 아닙니다 .
SpannedString
Spanned
인터페이스 의 구체적인 구현입니다 .
SpannableString
Spannable
인터페이스 의 구체적인 구현입니다 .
어떤 시나리오에서 그것들을 사용하는 것이 가장 일반적입니까?
하나를 반환하는 메서드가있는 경우 (예 : getText()
에 EditText
) 또는 하나를 매개 변수로 취하는 메서드가있는 경우 (예 : setText()
에 TextView
).
사용하여 귀하의 인용 경우는 Html.fromHtml()
A와, 아마도 기존의 안드로이드 개발에서 가장 일반적인 TextView
A를가 Spanned
보다 무게가 훨씬 가볍고입니다 WebView
. 그러나 다음과 같은 다른 사용 사례가 있습니다.
어떤 경우에 사용하지 않는 것이 가장 좋습니까?
그들은 대머리 퇴치, 제설, 열 펌프 수리, 수플레 만들기 등에 매우 끔찍합니다.
:-)
그중 하나를 사용할 때 고려해야 할 명백한 성능 영향이 있습니까?
정의에 따라 인터페이스는 "성능에 영향을 미치지 않습니다". API에 대한 설명 일뿐입니다.
특정 작업에서 SpannableString
보다 훨씬 느리다는 것을 알지 못합니다 SpannedString
. 그러나, SpannableStringBuilder
웰보다 약간 느릴 수있다 (텍스트 포맷 것을 그 스팬에 추가 텍스트를 조작 가능하게하는) SpannableString
또는 SpannedString
다양한 것들을. 그러나 성능 차이가 중요한지 여부는 사용량에 따라 다릅니다.