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?

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); 
  • Establecer una cadena spannable no funciona en una simple Textview
  • Espaciado de párrafos con SpannableStringBuilder en TextView
  • La mejor manera de obtener una SpannableString de un SpannableStringBuilder
  • Spannablestring no funciona para el botón creado mediante programación
  • ¿Cómo alinear el texto tanto a la izquierda como a la derecha de una línea TextView?
  • Android Development: Cómo reemplazar parte de un EditText con un Spannable
  • Altura de línea de Android Spannable
  • Android - Agregar margen para SpannableStringBuilder con ReplacementSpan
  • Cómo agregar la línea ondulada roja debajo del texto en el TextView de Android
  • ¿Puedo convertir un Spannable en String en android para cargar un ExpandableListView?
  • Android TextView formato de palabras múltiples
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.