A ListView
mi solicitud tiene muchos elementos de cuerda como name
, experience
, date of joining
, etc. Yo sólo quiero hacer name
negrita. Todos los elementos de la cadena estarán en un solo TextView
.
mi XML:
<ImageView
android:id="@+id/logo"
android:layout_width="55dp"
android:layout_height="55dp"
android:layout_marginLeft="5dp"
android:layout_marginRight="5dp"
android:layout_marginTop="15dp" >
</ImageView>
<TextView
android:id="@+id/label"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_toRightOf="@id/logo"
android:padding="5dp"
android:textSize="12dp" >
</TextView>
Mi código para configurar el TextView del elemento ListView:
holder.text.setText(name + "\n" + expirience + " " + dateOfJoininf);
android
android-listview
Mosca doméstica
fuente
fuente
Respuestas:
Digamos que tiene una
TextView
llamadaetx
. Luego usaría el siguiente código:fuente
var bss = new StyleSpan(Android.Graphics.TypefaceStyle.Bold);
etx.TextFormatted = sb;
Según la respuesta de Imran Rana, aquí hay un método genérico y reutilizable si necesita aplicar
StyleSpan
s a variosTextView
s, con soporte para múltiples idiomas (donde los índices son variables):Úselo de una
Activity
manera similar:strings.xml
Resultado:
Bienvenido a CompanyName
fuente
Las respuestas proporcionadas aquí son correctas, pero no se pueden llamar en un bucle porque el
StyleSpan
objeto es un solo tramo contiguo (no es un estilo que se pueda aplicar a varios tramos). LlamarsetSpan
varias veces con la misma negritaStyleSpan
crearía un intervalo en negrita y simplemente lo movería en el intervalo principal.En mi caso (mostrar resultados de búsqueda), necesitaba que todas las instancias de todas las palabras clave de búsqueda aparecieran en negrita. Esto es lo que hice:
Tenga en cuenta que el código anterior no es lo suficientemente inteligente como para omitir el doble negrita si una palabra clave es una subcadena de la otra. Por ejemplo, si busca "Fish fi" dentro de "Fishes in the fisty Sea" , el "pez" aparecerá en negrita una vez y luego la parte "fi" . Lo bueno es que, si bien es ineficiente y un poco indeseable, no tendrá un inconveniente visual, ya que el resultado que se muestra todavía se verá como
Pescado es en la fi Mar pocilga
fuente
Puedes hacerlo usando Kotlin y la
buildSpannedString
función de extensión desdecore-ktx
fuente
Si no sabe exactamente la longitud del texto antes de la parte de texto que desea poner en negrita, o incluso si no sabe la longitud del texto en negrita, puede usar fácilmente etiquetas HTML como las siguientes:
fuente
Extendiendo la respuesta de frieder para apoyar la insensibilidad a los casos y los diacríticos.
fuente
Si está usando la anotación @ srings / your_string, acceda al archivo strings.xml y use la
<b></b>
etiqueta en la parte del texto que desee.Ejemplo:
fuente
Recomiendo usar el archivo strings.xml con CDATA
Luego, en el archivo java:
fuente