¿Cómo inserto un salto de línea en una cadena para mostrarlo en un widget Android TextView?
Cuando configuro manualmente una cadena de textView como a continuación funciona.
<TextView android:id="@+id/textView1" android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="line 1 \n line 2"/>
Sin embargo, cuando intento mostrar una cadena en este textView no va a una nueva línea.
- Animación del tamaño de texto de TextView
- TextView redimensionado para ajustarse al texto
- Android TextView habilita las etiquetas LinkiFy y Href
- Justificar texto en la vista de texto
- Cómo evitar que las URL se envuelvan en TextView?
String sample = "line 1 \n line 2"; textView1.setText(sample);
Nota: En realidad estoy recibiendo la cadena de una base de datos SQLite. Pero eso no debería hacer una diferencia ¿verdad? ¡Porque todavía es una cuerda!
sample = cursor.getString(DBAdapter.COL_sample); textView1.setText(sample);
Por lo tanto, ahora mi TextView muestra "\ n" o "\ r \ n" carácter en lugar de un salto de línea.
- Cómo establecer programaticamente maxLength en Android TextView?
- La vista de texto de Android no se enrolla correctamente
- Android- Ajusta el ancho de un TextView a la izquierda de cualquier botón-1 o botón-2
- ¿Cómo añadir sombra en el texto personalizado?
- ¿Cómo crear sugerencias en el cuadro de edición textview que desaparecen cuando textview tiene foco?
- Establecer el color de texto de Android TextView de forma programática con setTextColor () procesa android: duplicateParentState inválido
- TextView programaticamente Android
- Android enlaza sin primer carácter
Ah, ahora, ya que usted dice que es de la base de datos SQLite, ese es el problema.
Puedes referirte a la respuesta de Blundell aquí .
El problema es que SQLite escapará a los nuevos caracteres de línea, así que cuando lo vuelvas a recuperar, saldrá como \\\n
o equivalente en el que necesitarás desplegar para mostrar correctamente (así que elimina la barra extra para que sea sólo \n
Así que dependiendo de qué nuevos caracteres de línea se están guardando en su base de datos, tendrá que manejar en consecuencia.
Así que utilizando la respuesta vinculada, podría hacer algo como esto (dependerá del número de barras diagonales inversas y otros caracteres que necesita hacer):
textView1.setText(sample.replaceAll("\\\\n", "\n"));
Si necesitas hacerlo en varios lugares, crea una función para esto.
Funciona cuando extraes el archivo strings.xml (puedes hacerlo rápidamente con el botón cmd + 1).
Esto es una corrección, y usted será adecuadamente abstraer sus cadenas como un bono.
Puedes probar
sample = sample.replace("\\\n", System.getProperty("line.separator"));
- Ocultar pantalla en "Lista de aplicaciones recientes", pero permitir capturas de pantalla
- Thread.sleep detiene todas las Asyntasks anidadas