Curso Básico de Android

Propaganda
Aula 3
ListView
 ListView é um componente que mostra uma lista de
itens
 Os itens da lista são automaticamente inseridos
usando um adapter, implementado pela classe
ArrayAdapter, a partir de um fonte de dados, como
uma lista ou uma consulta a um BD
 O adapter é contruindo usando o contexto da
aplicação, o tipo de listView (em nosso caso,
android.R.layout.simple_list_item_1) e a fonte de
dados a preenchê-la
Exemplo
 Vamos instanciar uma ArrayList de Strings, populá-la
com valores arbitrários, e preencher com ela um
ListView
Exercício
 Implemente a aplicação Listagem, com a classe:
 NomeController, com o atributo estático alunos
(ArrayList<String>); o método estático void adicionar (String
nome) e o método estático getNomes();
 Duas activities:
 MainActivity, com um EditText; um botão para chamar o
método adicionar da classe NomeController, passando o
nome digitado no EditText; e um item de menu para a
transição para a segunda Activity
 ListaActivity, que exiba um ListView com os nomes
adicionados na primeira activity; e um item de menu
para voltar a MainActivity
Arquivos
 Forma de persistir os dados depois da execução do





aplicativo
Em Java, é representada pela classe File
São criados pelo método createNewFile()
São editados pela classe FileWriter
São abertos pela classe FileReader
Sua leitura baseada em caracteres é feita pela classe
BufferedReader
Exemplo
 Vamos fazer uma aplicação, chamada FileDealer, que
leia linhas de texto e as escreva num arquivo,
localizado num sdcard, para posterior leitura de suas
linhas, a ser armazenadas numa lista
 Para permitir a escrita externa, é necessário incluir a
tag de permissão <uses-permission
android:name="android.permission.WRITE_EXTERNAL_STORAGE"
/>
no arquivo de manifesto da aplicação
Exemplo
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.FileWriter;
import java.util.ArrayList;
public class FileUtil {
String caminho;
File arquivo;
public FileUtil(String nomeArquivo) throws Exception {
caminho = "/sdcard/" + nomeArquivo + ".txt";
arquivo = new File(caminho);
if (!arquivo.exists()) {
arquivo.createNewFile();
}
}
Exemplo (continuação)
public void escrever(String linha) throws Exception {
FileWriter fw = new FileWriter(arquivo,true);
fw.write(linha + "\n");
fw.close();
}
public ArrayList<String> ler() throws Exception {
BufferedReader br = new BufferedReader(new FileReader(caminho));
ArrayList<String> linhas = new ArrayList<>();
String linha;
while ((linha = br.readLine()) != null) {
linhas.add(linha);
}
return linhas;
}
}
Exercício
 Implemente a aplicação Academica, com as classes:
 Aluno, com os atributos nome (String), telefone (String)
e email (String); getters, setters e construtor
 AlunoController, com os métodos void adicionar(Aluno
a), que adicione os dados de a a um arquivo; e o método
listar, que retorne um ArrayList contendo todos os
alunos cadastrados
Exercício (continuação)
 Três activities:
 MainActivity, com um EditText; um botão para chamar o
método adicionar da classe NomeController, passando
um aluno com os dados digitados nos EditTexts; e um
item de menu para a transição para a segunda Activity
 ListaActivity, que exiba um ListView com os nomes
adicionados na primeira activity; e um item de menu
para voltar a MainActivity; um clique num item da lista
chamará a terceira activity
 DadosActivity, que exiba em TextViews os dados do
aluno selecionado em ListaActivity
Download