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.
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.
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
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");