¿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.

 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.

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")); 
  • Estilo conjunto de Android en el código
  • Actualización de contenido de ScrollView
  • Actualización de Android TextView en subprocesos y ejecución
  • Fuente urdu en la vista de texto
  • ¿Cómo usar textview.getLayout ()? Devuelve null
  • Extra padding en TextView con contenido HTML
  • Android: dos problemas con Tablerow + TextView en Tablelayout
  • AutoLink = "todos" la característica de TextView Android
  • Configuración del texto como "primario" en Android
  • Problema al usar una fuente personalizada - "no se puede hacer el tipo de letra nativo"
  • Alineación de ImageSpan en la parte superior del TextView
  • FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.