Cómo poblar webview en android con texto sin formato de base de datos y ser capaz de manejar caracteres de nueva línea

Soy nuevo en el desarrollo de java y android Estoy trabajando en una aplicación que contiene GUI simple para acceder y leer los programas fundamentales en C y Java para los estudiantes.

Estoy tratando de poblar una webview con un archivo de texto (un C-programa en este caso), que está pre-cargado en una determinada columna de mi base de datos.

Decidí no usar un scrollview porque simultáneamente desplazarse y hacer zoom es muy difícil de implementar. El zoom requiere realizar implementaciones personalizadas que me resulta difícil entender.

Así que decidí utilizar webview ya que es fácilmente desplazable y requiere sólo una línea de código para implementar el zoom de texto.

Tengo 2 problemas:

1) la webview no puede manejar la nueva línea usando mi implementation.ie actual intenta exhibir todo el texto en la misma línea en vez de ir a la línea siguiente

2) no muestra "stdio.h", "stdlib.h", etc …. básicamente todas las palabras con la extensión .h que es parte de casi todos los programas de C. Es esencial para mostrar estos.

He intentado las siguientes 2 implementaciones (quizás incorrectamente):

1) loadData (String data, String mimeType, String encoding)

2) loadDataWithBaseURL (String baseUrl, String data, String mimeType, String encoding, String historyUrl)

Mi código es el siguiente:

package com.example.uopengineering; import java.io.UnsupportedEncodingException; import java.net.URLEncoder; import android.app.Activity; import android.content.Intent; import android.database.Cursor; import android.database.sqlite.SQLiteDatabase; import android.os.Bundle; import android.webkit.WebView; public class viewProgramActivity<x> extends Activity { private SQLiteDatabase database; ExternalDbOpenHelper dbOpenHelper; private WebView webView; private static final String DB_NAME = "umangdb.db"; private String rowid; private String programtext; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.viewprogram); dbOpenHelper = new ExternalDbOpenHelper(this, DB_NAME); database = dbOpenHelper.openDataBase(); Intent intent=getIntent(); rowid=intent.getStringExtra("myextra"); String query="select * from engg_table where _id="+rowid; Cursor myCursor = database.rawQuery(query,null); myCursor.moveToFirst(); programtext=myCursor.getString(4); myCursor.close(); webView = (WebView) findViewById(R.id.webView1); webView.getSettings().setBuiltInZoomControls(true); webView.getSettings().setJavaScriptEnabled(true); //webView.loadData(programtext, "text/html", "UTF-8"); try { webView.loadData(URLEncoder.encode(programtext,"utf-8").replaceAll("\\+"," "), "text/html", "utf-8"); //webView.loadDataWithBaseURL(null, programtext, null, query, null); } catch (UnsupportedEncodingException e) { // TODO Auto-generated catch block e.printStackTrace(); } } } 

El archivo XML correspondiente (para puposes de diseño) es:

 <RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context=".MainActivity" > <TextView android:id="@+id/article" android:layout_width="wrap_content" android:layout_height="wrap_content" android:maxLines = "22" android:scrollbars = "vertical" /> <WebView android:id="@+id/webView1" android:layout_width="match_parent" android:layout_height="match_parent" android:layout_alignParentLeft="true" android:layout_alignParentTop="true" /> </RelativeLayout> 

Fui a través de otros foros con preguntas similares, pero no fue capaz de encontrar soluciones adecuadas. Uno de ellos sugirió usar javascript para solucionar este problema . Todo lo que sé acerca de javascripts es hacer validaciones en formularios de aplicación web para mi proyecto de la universidad. ¿Es esto posible? Si es así, ¿cómo sugiere que vaya a aprender javascript y cómo exactamente se supone que para implementarlo.

Además, ¿cómo funciona replaceAll ("\ +", "") ¿Cómo es exactamente la eliminación de caracteres no deseados? También no estoy muy familiarizado con los estándares de codificación de caracteres

FlipAndroid es un fan de Google para Android, Todo sobre Android Phones, Android Wear, Android Dev y Aplicaciones para Android Aplicaciones.