Ajuda com CSV e listView

1 resposta
Louigi
Bom, eu estou com um problema e não sei se este é exatamente o fórum certo, a moderação pode mudar. Enfim, eu tenho um arquivo CSV de mais ou menos 7 mil linhas nesse formato: 12345;001;String_desse_tamanho_ou_mais;-12343.4;-1234.5;0 Eu criei uma classe "CSV" assim:
public abstract class CSV {
	private float latitude;
	private float longitude;
	private float codigo;
	public void setLat(String lat)
	{
		this.latitude = Float.parseFloat(lat.replaceAll(" ", ""));
	}
	public void setLong(String longi)
	{
		this.longitude = Float.parseFloat(longi.replaceAll(" ", ""));
	}
	public void setCodigo(String codigo)
	{
		this.codigo = Float.parseFloat(codigo);
	}
	public float getLat()
	{
		return this.latitude;
	}
	public float getLon()
	{
		return this.longitude;
	}
	public float getCodigo()
	{
		return this.codigo;
	}
}
Outra chamada "Onibus"
public class Onibus extends CSV {
	private String nome;
	private float rota;
	private float numero;
	public void setNum(String numero)
	{
		this.numero = Float.parseFloat(numero);
	}
	public float getNum()
	{
		return this.numero;
	}
	public void setRota(String rota)
	{
		this.rota = Float.parseFloat(rota);
	}
	public float getRota()
	{
		return this.rota;
	}
	public void setNome(String nome)
	{
		this.nome = nome;
	}
	public String getNome()
	{
		return this.nome;
	}
	
}
E a parte do código que roda o leitor da CSV:
public void lerCSV() throws FileNotFoundException
    {
    	//Carregar o CSV
    	InputStream file = getResources().openRawResource(R.raw.onibus);
    	BufferedReader reader = new BufferedReader(new InputStreamReader(file));
    	//Ler o CSV
        ValueProcessorProvider provider = new ValueProcessorProvider();
        CSVEntryParser<Onibus> entryParser = new AnnotationEntryParser<Onibus>(Onibus.class, provider);
        CSVReader<Onibus> csvPersonReader = new CSVReaderBuilder<Onibus>(reader).entryParser(entryParser).build();
        try {
			Onibus  = csvPersonReader.readAll();
		} catch (IOException e) {
			e.printStackTrace();
		}
        //Testando se funcionou
        Log.d("lol", Onibus.get(302).getNome());
    }
Entretanto, quando eu tento separar em uma nova String[] os nomes que são repetidos, simplesmente o App trava e fecha:
public String[] Nomes()
    {
    	for(int i=1;i<Onibus.size()+1;i++)
    	{
    		if(Onibus.get(i).getNome().compareTo(Onibus.get(i-1).getNome()) > 0)
    		{
    			nome[i-1] = Onibus.get(i).getNome();
    		}
    	}
    	return nome;
    }
Eu tento colocar essa array "nome" numa listView apenas para testar o código, entretanto, não funciona, já que trava ao tentar executar Nomes(); Alguém pode me ajudar ou demonstrar um outro caminho mais rápido ? Já que o CSV é muito grande, não é o único e demora muito para o App carregar.

1 Resposta

Louigi

Resolvi meu problema !!

Criado 10 de abril de 2013
Ultima resposta 12 de abr. de 2013
Respostas 1
Participantes 1