desenvolvimento de apps e games para android - parte 6

27
Desenvolvimento de Apps e Games para Android Por Erisvaldo Júnior. Parte 6 (29/09/2011)

Upload: erisvaldo-junior

Post on 31-May-2015

3.226 views

Category:

Technology


0 download

TRANSCRIPT

Page 1: Desenvolvimento de Apps e Games para Android - Parte 6

Desenvolvimento de

Apps e Games para Android

Por Erisvaldo Júnior. Parte 6 (29/09/2011)

Page 2: Desenvolvimento de Apps e Games para Android - Parte 6

RECAPITULANDO…

Page 3: Desenvolvimento de Apps e Games para Android - Parte 6

BackupManager Android desde a API Level 8 permite armazenar dados na Cloud sem necessidade de banco de dados externo (perfeito para armazenar SharedPreferences ou arquivos de configuração/informação simples).

Como fazer isso com SharedPreferences?

Primeiro passo: criar uma chave de acesso em http://code.google.com/android/backup/signup.html

• Depois deve-se criar uma classe que herda de BackupAgentHelper e, no onCreate(), criar uma instância de SharedPreferencesBackupHelper;

• No AndroidManifest.xml deve-se colocar os atributos android:allowBackups=“true” e android:backupAgent=“NomeDaSuaClasseQueHerdaDeBackupAgentHelper” em <application> e, por fim, adicionar a seguinte tag dentro de <application>:

Page 4: Desenvolvimento de Apps e Games para Android - Parte 6

BackupManager Cada vez que você alterar um dado do grupo de SharedPreferences, você deve invocar o método dataChanged() da classe BackupManager.

E agora?

Está feito! Suas SharedPreferences serão armazenadas na nuvem, fazendo com que o usuário não perca a informação mesmo após

reinstalar o seu aplicativo.

Page 5: Desenvolvimento de Apps e Games para Android - Parte 6

Exemplo de BackupManager & SharedPreferences

Page 6: Desenvolvimento de Apps e Games para Android - Parte 6

Banco de Dados SQLite Android provê suporte completo a bancos de dados SQLite. Os bancos criados serão acessíveis pelo nome para qualquer classe da aplicação, mas não poderão ser acessados externamente.

Para se criar um banco de dados, pode-se usar o método openOrCreateDatabase() do contexto. Contudo, a forma recomendada é criar uma subclasse de SQLiteOpenHelper e sobrescrever o método onCreate() para a criação das tabelas.

Page 7: Desenvolvimento de Apps e Games para Android - Parte 6

SQLiteOpenHelper O construtor de SQLiteOpenHelper recebe quatro parâmetros, conforme especificado abaixo. A versão do banco de dados é muito útil para o caso de o banco já existir e precisar ser atualizado (através da adição de novas tabelas e/ou colunas, por exemplo).

Page 8: Desenvolvimento de Apps e Games para Android - Parte 6

SQLiteDatabase - query() As consultas com query() retornam um Cursor para navegação e recebem diversos parâmetros, cada qual com sua utilidade para a consulta, conforme explicitado abaixo.

Page 9: Desenvolvimento de Apps e Games para Android - Parte 6

Exemplo de Banco de Dados SQLite

Page 10: Desenvolvimento de Apps e Games para Android - Parte 6

Roteiro da Aula

Bem vindo ao mundo da mobilidade

LISTVIEW E

LISTACTIVITY

COMUNICAÇÃO

Page 11: Desenvolvimento de Apps e Games para Android - Parte 6

COMUNICAÇÃO

Page 12: Desenvolvimento de Apps e Games para Android - Parte 6

Network Connection Há, ainda, uma quinta forma de persistência em Android: o armazenamento remoto. Pode-se usar uma rede (quando disponível) para armazenar e recuperar dados de seus serviços baseados na Web.

Para realizar operações na rede, usam-se classes dos seguintes pacotes: • java.net; • android.net.

Page 13: Desenvolvimento de Apps e Games para Android - Parte 6

Android Networking Capabilities

Page 14: Desenvolvimento de Apps e Games para Android - Parte 6

org.apache.http.client.methods.HttpGet

Page 15: Desenvolvimento de Apps e Games para Android - Parte 6

org.apache.http.client.methods.HttpPost

Page 16: Desenvolvimento de Apps e Games para Android - Parte 6

URLConnection java.net.URL url = new java.net.URL(“http://developer.android.com");

java.net.URLConnection uc = url.openConnection(); BufferedReader br = new BufferedReader( new InputStreamReader ( uc.getInputStream() ) );

Faça uma aplicação que exiba o código-fonte de uma página qualquer cujo endereço é digitado em um EditText. OBS: Lembre-se de definir permissão de acesso à Internet no AndroidManifest.xml

Page 17: Desenvolvimento de Apps e Games para Android - Parte 6

URLConnection

Faça uma aplicação que acesse exemploget.php e mostre o retorno em um TextView.

Exemplo:

http://erisvaldojunior.com/exemploget.php?tipo=2

tipo=1 Retorno: Bom dia tipo=2 Retorno: Boa tarde tipo=3 Retorno: Boa noite

Default Retorno: Oi

Page 18: Desenvolvimento de Apps e Games para Android - Parte 6

LISTVIEW E LISTACTIVITY

Page 19: Desenvolvimento de Apps e Games para Android - Parte 6

ListView Provê uma lista de itens (com scrolling) provenientes de um Array/Lista ou de um banco de dados. ListView é abastecido através de um adaptador. Pode-se fazer seu próprio adaptador para determinar como os dados são lidos.

ArrayAdapter e CursorAdapter

• ArrayAdapter – trata dados baseados em Array ou Lists;

• SimpleCursorAdapter – trata dados provenientes de

um banco de dados SQLite.

Page 20: Desenvolvimento de Apps e Games para Android - Parte 6

ListActivity Classe base para uma Activity cujo objetivo é mostrar uma lista. Provê facilidades como um método predefinido para quando um usuário seleciona um elemento da lista. Contém um adaptador que deve ser setado no próprio metodo onCreate() da ListActivity. Isso é feito através do setListAdapter().

onListItemClick() – método de ListActivity chamado quando um item da lista é selecionado.

• Layouts Default – os itens da lista podem ter um layout padrão. Ex: android.R.layout.simple_list_item1;

• Layouts Personalizados – seu layout (XML) deve conter uma

ListView com o ID @android:id/list. Além disso, você pode ter um TextView @android:id/empty indicando lista vazia.

Page 21: Desenvolvimento de Apps e Games para Android - Parte 6

Exemplo 1 Criar uma lista de elementos com ListActivity + Array Adapter + Layout Default.

Page 22: Desenvolvimento de Apps e Games para Android - Parte 6

Exemplo 2 Criar uma lista de elementos com ListActivity + Array Adapter + Layout PERSONALIZADO.

• Modificar o código anterior para o ArrayAdapter utilizar o layout abaixo, apontando para o R.id.label.

rowlayout.xml

Page 23: Desenvolvimento de Apps e Games para Android - Parte 6

ListActivity com layout dinâmico Nos exemplos anteriores, o layout é o mesmo para todos os itens. É possível mudar a aparência de itens específicos de uma ListView criando o seu próprio adaptador, através do método getView() e da classe LayoutInflater.

MySimpleArrayAdapter extends ArrayAdapter

• getView(int position, View convertView, ViewGroup parent) – método que deve ser sobrecarregado para personalizar a aparência do item da lista.

Page 24: Desenvolvimento de Apps e Games para Android - Parte 6

Exemplo 3: Personalizar ícone de itens específicos da lista.

Page 25: Desenvolvimento de Apps e Games para Android - Parte 6

Exemplo 3: Depois, basta setar o adaptador criado no método onCreate() da ListActivity.

Page 26: Desenvolvimento de Apps e Games para Android - Parte 6

ListView, ListActivity e Adapters

Há muitas outras possibilidades!

• setOnItemLongClickViewListener() de ListView – apresenta o método onItemLongClick(), invocado quando o usuário mantém o dedo pressionado sobre um item;

• Seleção Múltipla; • Cabeçalho e rodapé; • SimpleCursorAdapter

• ContentProvider – exemplo: mostrar lista de contatos; • Banco de dados próprio (SQLite).

Page 27: Desenvolvimento de Apps e Games para Android - Parte 6

obrigado

• e-mail: [email protected]

• web: http://erisvaldojunior.com

• twitter: @erisvaldojunior