Avisos

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

Respuesta
 
Herramientas
  #1  
Viejo 23/08/13, 17:35:24
Array

[xs_avatar]
Cristofer2006 Cristofer2006 no está en línea
Usuario novato en la web
 
Fecha de registro: ago 2013
Mensajes: 4
Modelo de smartphone: SIII Mini
Tu operador: Movistar
Thumbs up Mostrar un recurso raw en un listview

Hola estoy intentando crear una lista con cada linea de un txt guardado como recurso raw, el problema esta en que el bucle while solo lee la primera linea del archivo, copio el código a continuacion:

Código:
            int indice=0;
	    String linea;
            TextView tv1;
            ListView lv1;
            String[] datos=new String[1];
		
		tv1=(TextView)findViewById(R.id.textView1);
		Bundle bundle = getIntent().getExtras();
		String autor = bundle.getString("autor");
		int resource = getResources().getIdentifier(autor, "raw", "proyec.to1");
		
		try
		{
		    InputStream fraw = getResources().openRawResource(resource);
		    BufferedReader brin = new BufferedReader(new InputStreamReader(fraw));
		    
		    while((linea = brin.readLine()) != null){
		    datos[indice]=linea;
		    indice=indice+1;
		    tv1.setText(linea);
		    }
		    
			lv1=(ListView)findViewById(R.id.listView1);
			lv1.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, datos));
		    
		    fraw.close();
		}
		catch (Exception ex)
		{
		    Log.e("Ficheros", "Error al leer fichero.");
		}
Haber si alguien me puede ayudar, saludos cordiales y gracias de antemano
Responder Con Cita


  #2  
Viejo 23/08/13, 19:01:53
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
String[] datos=new String[1];

Lo raro es que no te de excepción cuando intenta escribir en datos[1]
Responder Con Cita
  #3  
Viejo 23/08/13, 19:13:53
Array

[xs_avatar]
Cristofer2006 Cristofer2006 no está en línea
Usuario novato en la web
 
Fecha de registro: ago 2013
Mensajes: 4
Modelo de smartphone: SIII Mini
Tu operador: Movistar
Me corre la aplicación perfectamente, solo que lee solamente la primera linea del archivo txt, soy nuevo en android, vengo de php

Entonces puede tener que ver con el array? He mirado como crear un array pero en ningún sitio sale como hacerlo sin especificar el numero de registros que tendrá

Saludos
Responder Con Cita
  #4  
Viejo 23/08/13, 20:09:14
Array

[xs_avatar]
kriogeN kriogeN no está en línea
Colaborador/a
· Votos compra/venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Tu operador: Vodafone
Puedes crear un ArrayList e ir añadiendo Strings con add.

De todas formas la primera prueba que deberías hacer es poner el String con una dimensión de 2, a ver si te lo coge (que no debería, si no estaría dando excepción). Porque si no lo coge lo más probable es que el fichero esté en un formato incorrecto y no interpreta bien los saltos de línea.
Responder Con Cita
  #5  
Viejo 23/08/13, 20:13:26
Array

[xs_avatar]
Cristofer2006 Cristofer2006 no está en línea
Usuario novato en la web
 
Fecha de registro: ago 2013
Mensajes: 4
Modelo de smartphone: SIII Mini
Tu operador: Movistar
Si pongo una dimensión de 2 se me cuelga cuando el archivo tiene dos lineas pero no cuando tiene mas, de todas formas si me lo lee, si pongo solo:

while((linea = brin.readLine()) != null){
tv1.setText(linea);
}

tv1 muestra la ultima frase del archivo, pero no si lo guardo en el array, lo mismo sera eso, voy a mirar con un ArrayList haber que pasa
Responder Con Cita
  #6  
Viejo 23/08/13, 23:31:18
Array

[xs_avatar]
Cristofer2006 Cristofer2006 no está en línea
Usuario novato en la web
 
Fecha de registro: ago 2013
Mensajes: 4
Modelo de smartphone: SIII Mini
Tu operador: Movistar
Funciona a la perfección usando ArrayList, muchas gracias

copio el código por si a alguien le puede servir:

Código:
            int indice=0;
	    String linea;
            TextView tv1;
            ListView lv1;
            ArrayList<String> datos=new ArrayList<String>();
		
		Bundle bundle = getIntent().getExtras();
		String autor = bundle.getString("autor");
		int resource = getResources().getIdentifier(autor, "raw", "proyec.to1");
		
		try
		{
		    InputStream fraw = getResources().openRawResource(resource);
		    BufferedReader brin = new BufferedReader(new InputStreamReader(fraw));
		    
		    while((linea = brin.readLine()) != null){
		    datos.add(linea);
		    }
		    
			lv1=(ListView)findViewById(R.id.listView1);
			lv1.setAdapter(new ArrayAdapter<String>(this, R.layout.list_item, datos));
		    
		    fraw.close();
		}
		catch (Exception ex)
		{
		    Log.e("Ficheros", "Error al leer fichero.");
		}
Saludos cordiales
Responder Con Cita
Respuesta

Estás aquí
Regresar   Portal | Indice > Todo sobre Android > Programación y Desarrollo para Android



Hora actual: 11:44:20 (GMT +1)



User Alert System provided by Advanced User Tagging (Lite) - vBulletin Mods & Addons Copyright © 2025 DragonByte Technologies Ltd.

Contactar por correo / Contact by mail / 邮件联系 /