Bu arayüzlerin amacı nedir?
CharSequence
bir karakter dizisini temsil eden standart bir Java arayüzüdür. String
en yaygın kullanılan somut uygulamadır CharSequence
, ardından StringBuilder
.
Spanned
a, CharSequence
o açıklıklı değiştirilemez metin bölümlerini uygulamak için biçimlendirme belirten "yayılma" ile.
Spannable
Bir olan Spanned
, yayılma değiştirme yeteneği ekleyerek (eklemek veya biçimlendirme kaldırmak), ama değil , metnin kendisini değiştirmek için.
SpannedString
Spanned
arayüzün somut bir uygulamasıdır .
SpannableString
Spannable
arayüzün somut bir uygulamasıdır .
Bunları kullanmak en çok hangi senaryolarda yaygındır?
Bir yöntem olduğunda bu döner bir (örneğin getText()
bir ile EditText
) ya da (bakınız, örneğin, bir parametre olarak alır bir yöntem olduğu zaman setText()
bir ile TextView
).
Belirtilen kullanım durumunuz, Html.fromHtml()
geleneksel Android geliştirmede belki de en yaygın olanıdır, çünkü a TextView
ile a Spanned
, a'dan çok daha hafiftir WebView
. Ancak, aşağıdakiler gibi başka kullanım durumları da vardır:
Hangi durumlarda bunları kullanmaktan kaçınmak en iyisidir?
Kellik, kar temizleme, ısı pompası onarımı, sufle yapma vb. İle mücadelede olağanüstü derecede kötüdürler.
:-)
Bunlardan herhangi birini kullanırken dikkate alınması gereken bariz performans etkileri var mı?
Arayüzlerin tanımları gereği "performans etkileri" yoktur - bunlar yalnızca bir API'nin açıklamasıdır.
Bunun herhangi bir operasyondan SpannableString
çok daha yavaş olduğunun farkında değilim SpannedString
. Bununla birlikte, SpannableStringBuilder
(bu, metni biçimlendiren aralıklara ek olarak metni değiştirmeye izin verir), çeşitli şeylerden SpannableString
veya SpannedString
çeşitli şeylerden biraz daha yavaş olabilir . Performans farklılıklarının önemli olup olmadığı, kullanıma bağlı olacaktır.