Si desea cambiar el estado de todas las instancias de una determinada String
dentro de un TextView
texto (mayúsculas y minúsculas) que puede utilizar StringBuilder
s y SpannableString
como esto:
StringBuilder textBuilder = new StringBuilder(myTextView.getText().toString());
StringBuilder searchedTextBuilder = new StringBuilder((mySearchedString));
SpannableString spannableString = new SpannableString(myTextView.getText().toString());
int counter = 0;
int index = 0;
for (int i = 0;i < textBuilder.length() - mySearchedString.length() - 1;i++)
{
counter = 0;
if (Character.toLowerCase(textBuilder.charAt(i)) == Character.toLowerCase(searchedTextBuilder.charAt(index)))
{
counter++;
index++;
for (int j = 1,z = i + 1;j < mySearchedString.length() - 1;j++,z++)
{
if (Character.toLowerCase(textBuilder .charAt(z)) == Character.toLowerCase(searchedTextBuilder .charAt(index)))
{
counter++;
index++;
}
else
{
index++;
if (index % mySearchedString.length() == 0)
{
index = 0;
}
break;
}
}
if (counter == mySearchedString.length() - 1) // A match
{
spannableString.setSpan(new ForegroundColorSpan(Color.RED), i,
i + mySearchedString.length(), Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); // Do the change you want(In this case changing the fore ground color to red)
index = 0;
continue;
}
else
{
index = 0;
continue;
}
}
}
myTextView.setText(spannableString);
}
- Almacenar todo el texto
TextView
dentro de StringBuilder
.
- Almacene la cadena buscada dentro de
StringBuilder
.
- tienda del wholre
TextView
texto dentro de un SpannableString
- Haz una operación sencilla para encontrar todas las instancias
String
dentro del texto TextView
y cambiarlos cuando llegó.
- Establezca el valor de texto de
TextView
en SpannableString
.
Posible duplicado de [? ¿Es posible tener varios estilos dentro de una Vista de Texto] (http://stackoverflow.com/questions/1529068/is-it- possible-to-have-multiple-styles-inside-a-textview) – blahdiblah
http://stackoverflow.com/questions/9754076/which-html-tags-are-supported-by-android-textview/35271588#35271588 –