Texto de estilo del parámetro en método getString (int resId, Object … formatArgs)

Tengo dos recursos de la secuencia como tal:

<string name="give_us_feedback">Give us feedback at %1$s if you want to make the app even better!</string> <string name="email">info@mycompany.com</string> 

Quiero estilo de la parte de correo electrónico para ser azul y subrayado para indicar que el usuario puede hacer clic en él (todo el TextView, no sólo el texto del correo electrónico). Sé utilizar SpannableString para colorear texto, pero no parece funcionar cuando estoy combinando dos cadenas a través de getString (int resId, Object … formatArgs), presumiblemente porque getString () realizará un cast o un .toString () En el objeto que se está enviando. Esto es lo que no funciona:

 TextView emailTV = new TextView(this); SpannableString email = new SpannableString(getString(R.string.email)); email.setSpan(new UnderlineSpan(), 0, email.length() - 1, 0); email.setSpan(new ForegroundColorSpan(Color.BLUE), 0, email.length() - 1, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); String feedback = getString(R.string.give_us_feedback, email); emailTV.setText(feedback); 

¿Algunas ideas?

One Solution collect form web for “Texto de estilo del parámetro en método getString (int resId, Object … formatArgs)”

Es un poco complicado. Convertir de nuevo a charsequence ( String feedback = getString(R.string.give_us_feedback, email); ) hace desaparecer el Spannable . Intente de esta manera (desea comprobar los índices correctos en su cadena)

 String emailString = getString(R.string.email); String feedback = getString(R.string.give_us_feedback, emailString); SpannableString email = new SpannableString(feedback); int startIndex = feedBack.indexOf(emailString); int endIndex = startIndex + emailString.length(); email.setSpan(new UnderlineSpan(), startIndex, endIndex, 0); email.setSpan(new ForegroundColorSpan(Color.BLUE), startIndex, endIndex, Spannable.SPAN_EXCLUSIVE_EXCLUSIVE); emailTV.setText(email); 
  • Cómo agregar la línea ondulada roja debajo del texto en el TextView de Android
  • Alinear 2 textos, 1 normal, 1 opuesto
  • El método draw () de ReplacementSpan no se llama
  • ¿Cómo puedo tener EditText con Clickable Spannables y todavía seleccionable por longClick?
  • Establecer una matriz de cadenas en negrita en Android
  • Establecer una cadena spannable no funciona en una simple Textview
  • ¿Puedo convertir un Spannable en String en android para cargar un ExpandableListView?
  • Cómo cambiar dinámicamente el tamaño del texto en Android
  • Obtener Spannable String de EditText
  • A veces, las extensiones de la imagen no son visibles cuando el contenido cubre varias líneas en la vista de texto
  • Android - Agregar margen para SpannableStringBuilder con ReplacementSpan
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.