Cadenas de Android localizadas para cualquier interfaz de usuario | Autor: Christian Schmitz | Noviembre de 2021
Método de generalización Androide Para los recursos de cadena, creé una abstracción de tipo de cadena parcelable sensible al contexto AString
Función única invoke(Context): CharSequence?
– escriba en Java por Kotlin.
La propia biblioteca principal implementa el tipo que admite valores nulos, simple Java CharSequence
Tipo (incluido String
con Spannable
) y recursos de texto y cadenas, con o sin parámetros de formato o cantidades.
Además, defino Kotlin Las funciones de extensión se utilizan generalmente como sobrecargas de todos los métodos. CharSequence
directamente.Por lo tanto, no es necesario proporcionar un CharSequence
O use directamente el recurso de cadena del modelo de vista para usarlo en la implementación de la vista.
textView.setText("value".asAString())
textView.setText(StringResource(R.string.value))
esta AString
La interfaz se define como extensible, por lo que también puede encapsular la lógica de formato y pequeñas conversiones o directamente desde Context
Proporcionado a la función.
@Parcelize
data class LocalDateFormatAString(
private val date: LocalDate,
private val pattern: String,
) : AString {
override fun invoke(context: Context) =
date.format(DateTimeFormatter.ofPattern(pattern))
}@Parcelize
object LocaleASting : AString {
override fun invoke(context: Context) =
context.resources.configuration.locales[0].toString()
}
Así que solo hay un tipo disponible para vista Y utilícelo como una simple cuerda.