![]() |
|
| Programación y Desarrollo para Android Subforo exclusivo para temas de programación de software para PDAs y desarrollo de aplicaciones, interfaces, etc bajo Android |
«
Tema Anterior
|
Siguiente tema
»
|
|
Herramientas |
|
#1
|
|
Otras de cosas que no comprendo
Os pongo el código:
Código:
private void leerPuntosApp(){
InputStream stream =getResources().openRawResource(R.raw.sitios);
BufferedReader brin = new BufferedReader(new InputStreamReader(stream));
try {
while(brin.ready()){
String []todoPartes = brin.readLine().split("\n");
for(int i= 0;i<todoPartes.length;i++)
dibujarPuntos(todoPartes[i]);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private void leerPuntoPropios(){
String todo = null;
if(sitios.exists() && sitios.canRead()){
FileInputStream fileIN = null;
try{
fileIN = new FileInputStream(sitios);
byte [] reader = new byte[fileIN.available()];
while(fileIN.read(reader)!= -1){ }
todo = new String(reader);
}catch(Exception ex){
ex.printStackTrace();
}finally{
if(fileIN != null){
try{
fileIN.close();
}catch(IOException ioExcep){
ioExcep.printStackTrace();
}
}
}
}
String []todoPartes = todo.split("\n");
for(int i= 0;i<todoPartes.length;i++)
dibujarPuntos(todoPartes[i]);
}
private void dibujarPuntos(String punto){
String []separados = punto.split(",");
Dialog dialog = hacerDialogo(separados[0],separados[1],
separados[2],separados[3],separados[4]);
//AQUI ME DA UN NumberFormatException
lat = Double.parseDouble(separados[0])*1E6;
lon = Double.parseDouble(separados[1])*1E6;
}
Alguien me ayuda? |
|
|
|
#2
|
||||
|
||||
|
En la excepción te suele decir qué es lo que no le ha gustado, y siempre puedes poner una traza antes para ver qué valor tiene la variable que ha hecho saltar la excepción.
Y con eso vas para atrás en el código y ves si es que estabas cortando mal la cadena, o te sobraba un punto, una coma, o es que había un elemento vacío o null, por ejemplo... |
|
#3
|
|
Bueno esta claro que mi problema es que no se leer del raw línea a línea ¿Como lo hago?
Tengo esto en mi txt: 38.706937,-0.494406,Alcoy,Alcoy,Comunidad Valenciana 37.605651,-0.991294,Vuelo1,Cartagena,Región de Murcia 37.652022,-0.719147,Vuelo2,La Manga del Mar Menor,Región de Murcia 42.817988,-1.644183,Vuelo3,Pamplona,Navarra 36.750779,-5.812395,Vuelo4,Arcos de la frontera,Andalucia Como guardo cada línea en una posición de un array de string?? |
|
#4
|
||||
|
||||
|
Eso es con el split, que me alegro de que lo uses ;)
De todas formas, revisa el código, no vale para nada hacer readLine().split("\n") porque readLine ya devuelve solo una línea de texto... Te recomiendo poner trazas, para saber si lees bien las líneas, y luego para saber si las separas bien. Intentar acaparar el problema de golpe no tiene sentido, hay que probar los métodos individualmente, desde los más básicos a los más complejos. |
|
#5
|
|
Los consejos siempre son bien recibidos. He cambiado el código y ahora hago esto.
Código:
private void leerPuntosApp(){
InputStream stream =getResources().openRawResource(R.raw.sitios);
BufferedReader brin = new BufferedReader(new InputStreamReader(stream));
String todoPartes = null;
try {
while(brin.read() != -1){
todoPartes = brin.readLine();
dibujarPuntos(todoPartes);
}
} catch (IOException e) {
e.printStackTrace();
}
}
private void dibujarPuntos(String punto){
Toast.makeText(this, punto, Toast.LENGTH_SHORT).show();
String []separados = punto.split(",");
for(int i =0;i<separados.length;i++){
Dialog dialog = hacerDialogo(separados[0],separados[1],
separados[2],separados[3],separados[4]);
itemOverlay = new CargarItem(puntosMapa,this,dialog);
lat = Double.parseDouble(separados[0])*1E6;
lon = Double.parseDouble(separados[1])*1E6;
GeoPoint point = new GeoPoint(lat.intValue(),lon.intValue());
//GeoPoint point = calcularCoordenadas(listaDeSitios.get(i).getCiudad());
item = new OverlayItem(point,separados[2], null);
itemOverlay.addOverlay(item);
mapOverlays.add(itemOverlay);
mapView.postInvalidate();
}
}
|
|
#6
|
||||
|
||||
|
¿Y el bucle este " for(int i =0;i<separados.length;i++){"?
|
|
#7
|
|
Se que no sirve, esta de una prueba previa. Aunque lo quite se obtiene lo mismo
|
| Respuesta |
Estás aquí
|
||||||
|
||||||
«
Tema Anterior
|
Siguiente tema
»
| Herramientas | |
|
|
Hora actual: 23:33:54 (GMT +1)
HTCMania: líderes desde el 2007





