Um objeto ADAPTER atua como uma ponte entre um AdapterView e os dados subjacentes para esta visão. O adapter permite o acesso aos itens e também é responsável por fazer uma exibição de cada item do conjunto de dados. Ou seja, usamos adapter's quando queremos listar algo de forma personalizada com um layout definida pelo designer ou programador.
O Android já pré-disponibiliza um adapter padrão para listagem, devemos apenas herdar nossa Activity de ListActivity e criar um ArrayAdaper para listar de forma simples mas muito eficiente alguns dados guardados em List ou Array's.
Aqui irei disponibilizar um código feito por mim para listarmos todos as pastas e arquivos do SDCARD. Iremos englobar o ADAPTER e FILE BROWSER em um código apenas! =)
Primeiro devemos criar nosso arquivo de layout contendo um ListView dentro de um LinearLayout apenas.
Feito isso, devemos agorar criar um outro arquivo de layout que responderá por cada posição do listView, ou seja o que os itens do listView terá. Perceba que aqui é aonde criaremos como queremos nosso listView, seja com CheckBox, Spinner, TextView, ImageView, ProgressBar, (...). Fica a seu critério.
Agora vamos para a nossa Classe Java que será o ADAPTER:
Perceba que devemos criar uma classe JAVA que herde da classe BaseAdapter disponibilizada no sdk do Android. Ela pedirá que nós implementemos todos os métodos que ela possui, no caso getCount(), getItem(), getItemId() e getView(). Você deve estar se perguntando agora "Mas que diabos esses métodos fazem? =S". Muito simples, até porque o nome dos métodos já são bastante sugestivos.
Como dito acima, precisamos montar nossas VIEW's que serão mostradas no ListView.
Primeiro, devemos criar nossos atributos e o construtor da classe onde iremos instanciar nossos atributos.
Boa tarde colega
ResponderExcluirta dando 2 erros
1
mListaDeArquivos = new File[dir.length];
length cannot be resolved or is not a field
2
mDiretorios.add(file.length());
The method addAll(Collection) in the type List is not applicable for the arguments (long)
Opa, o nome correto é lenght ao invés de length!
ResponderExcluir