Popular um Spinner

3 respostas
androidjavamobile
L

Sou nova em programação Android, Gostaria de saber se teria como popular um spinner com uma lista de nomes que tenho salva em um txt na memoria interna do celular.

3 Respostas

A

Olá, sim é possível, qual o formato dos dados no arquivo? um csv?. Primeiro de tudo você deve ler o arquivo e agrupar seus dados de acordo com um delimitador, por exemplo, se for um nome por linha o delimitador é \n, e nesse caso você irá ler linha a linha e salvar numa List de Strings. Depois vem a parte do spinner em que basta usar o código abaixo:

ArrayAdapter<String> spinnerArrayAdapter = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, 
minhaListaDeNomes); 
spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
spinner.setAdapter(spinnerArrayAdapter);

Ressaltando, a parte mais importante é a leitura do arquivo, não se esqueça das permissões de leitura e escrita.

L

Olá Andrauss, meu código está assim, porém quando rodo o aplicativo ele está retornando “não carregou”, ou seja está entrando no catch…

diretorioApp2 = Environment.getExternalStoragePublicDirectory(Environment.DIRECTORY_DOCUMENTS) + "/App/nomes.txt";
       diretorio2 = new File(diretorioApp2);
       diretorio2.mkdirs();
       String caminho = (diretorio.toString());

       try {

           BufferedReader br = new BufferedReader(new FileReader(new File(caminho)));
           BufferedWriter bw = new BufferedWriter(new FileWriter(new File(caminho), false));
           String linha = null;
           while ((linha = br.readLine()) != null)
           {
               String[] linhaDoArquivo = reader.readLine().split("\n");
               nomes.add(linha);
           }
           mensagemExibir("App", "carregou");
           ArrayAdapter<String> spinnerArrayAdapter  = new ArrayAdapter<String>(this, android.R.layout.simple_spinner_item, nomes);
           spinnerArrayAdapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
           spn1.setAdapter(spinnerArrayAdapter);
           bw.flush();
           br.close();
           bw.close();
       }
       catch (Exception e)
       {
        mensagemExibir("App", "não carregou");
       }

Meu .TXT

Larissa\n
Paulo\n
Clara\n

A

Olá você deve postar o erro que ocorre, use um log.e ou e.printStackTrace() para ter acesso aos detalhes do erro. Pode ser uma questão de permissões.

Essa parte do código não é necessária

String[] linhaDoArquivo = reader.readLine().split("\n");
Criado 20 de julho de 2017
Ultima resposta 24 de jul. de 2017
Respostas 3
Participantes 2