Home Menu

Menu



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


 
Herramientas
  #1  
Viejo 23/08/13, 17:35:24
Avatar de Cristofer2006
Cristofer2006 Cristofer2006 no está en línea
Usuario novato en la web
Mensajes: 4
 
Fecha de registro: ago 2013
Mensajes: 4
Modelo de smartphone: SIII Mini
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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
Avatar de Cristofer2006
Cristofer2006 Cristofer2006 no está en línea
Usuario novato en la web
Mensajes: 4
 
Fecha de registro: ago 2013
Mensajes: 4
Modelo de smartphone: SIII Mini
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Avatar de kriogeN
kriogeN kriogeN no está en línea
Colaborador/a
Mensajes: 4,637
Compra y venta: (1)
 
Fecha de registro: oct 2010
Localización: Murcia
Mensajes: 4,637
Modelo de smartphone: Samsung Galaxy S7 Edge SM-G935F
Versión de ROM: CM13 - CM 11
Tu operador: Vodafone
Mencionado: 60 comentarios
Tagged: 3 hilos
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
Avatar de Cristofer2006
Cristofer2006 Cristofer2006 no está en línea
Usuario novato en la web
Mensajes: 4
 
Fecha de registro: ago 2013
Mensajes: 4
Modelo de smartphone: SIII Mini
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
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
Avatar de Cristofer2006
Cristofer2006 Cristofer2006 no está en línea
Usuario novato en la web
Mensajes: 4
 
Fecha de registro: ago 2013
Mensajes: 4
Modelo de smartphone: SIII Mini
Tu operador: Movistar
Mencionado: 0 comentarios
Tagged: 0 hilos
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   HTCMania > Todo sobre Android > Programación y Desarrollo para Android

Herramientas

Reglas de Mensajes
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Las caritas están On
Código [IMG] está On
Código HTML está Off

Saltar a Foro



Hora actual: 20:04:57 (GMT +1)

Cookies
Powered by vBulletin™
Copyright © vBulletin Solutions, Inc. All rights reserved.
 
HTCMania: líderes desde el 2007