A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Treinamento em Android

Apresentações semelhantes


Apresentação em tema: "Treinamento em Android"— Transcrição da apresentação:

1 Treinamento em Android

2 6. Programação para internet

3 Obtendo conteúdo de uma URL
Project Name: AplicacaoRecebConteudo Package Name : br.ufpe.cin.android.apprecebcont Create Activity: AppContent Application Name: Aplicação URL 1 Min SDK Version: 10

4 Obtendo conteúdo de uma URL
main.xml EditText Layout width: fill_parent Button Text: Somar

5 Obtendo conteúdo de uma URL
AppContent.java public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); edurl = (EditText) findViewById(R.id.edurl); btmostrar = (Button) findViewById(R.id.mostrar); btmostrar.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { try{ String strurl = edurl.getText().toString(); URL url = new URL(strurl); InputStream is = url.openStream(); int i;

6 Obtendo conteúdo de uma URL
String conteudo=""; while((i = is.read()) != -1) conteudo+= ((char)i); AlertDialog.Builder dialogo = new AlertDialog.Builder(AppContent.this); dialogo.setMessage(conteudo); dialogo.setTitle("Conteúdo"); dialogo.setNeutralButton("OK", null); dialogo.show(); }catch(Exception e) { } } });

7 Obtendo conteúdo de uma URL
No arquivo AndroidManifest.xml, antes da tag </manifest>, coloque a tag abaixo: <uses-permission android:name="android.permission.INTERNET" />

8 Envio de informações para uma URL
Project Name: AplicacaoEnviaConteudo Package Name : br.ufpe.cin.android.appenviacont Create Activity: AppSend Application Name: Aplicação URL 2 Min SDK Version: 10

9 Enviando informações para uma URL
main.xml EditText Layout width: fill_parent TextView Text: Idade Button Layout width: fill_parent, Text: Enviar Dados

10 Enviando informações para uma URL
AppContent.java public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button b = (Button) findViewById(R.id.btenviar); b.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { TextView txtnome = (TextView) findViewById(R.id.nome); TextView txtidade = (TextView) findViewById(R.id.idade); String nome = txtnome.getText().toString(); String idade = txtidade.getText().toString(); nome = URLEncoder.encode(nome);

11 Enviando informações para uma URL
try{ URL url = new URL(" hp?nome=" + nome + "&idade=" + idade); url.openStream(); AlertDialog.Builder d = new AlertDialog.Builder(AppSend.this); d.setMessage("Dados enviados com sucesso."); d.setNeutralButton("OK", null); d.setTitle("Resultado"); d.show(); }catch(Exception e) { d.setMessage(e.toString()); d.setTitle("Erro"); } });

12 Enviando informações para uma URL
No arquivo AndroidManifest.xml, antes da tag </manifest>, coloque a tag abaixo: <uses-permission android:name="android.permission.INTERNET" />

13 Desafio! Baixem a aplicação AppCadastro;
Queremos agora armazenar os dados a serem cadastrados em um banco de dados remoto; Usaremos duas páginas Web: Receberá os parâmetros nome,idade e profissao, para inserir no BD; Retornará o registro com a posição indicada pelo parâmetro id (inciando de zero)

14 Fazendo download de um arquivo
Project Name: AplicacaoDownload Package Name : br.ufpe.cin.android.appdownload Create Activity: AppDownload Application Name: Aplicação Download Min SDK Version: 10

15 Fazendo download de um arquivo
main.xml Button Layout width: fill_parent Text: Baixar imagem TextView Text: Imagem ImageView Src:<vazio> Layout: height wrap_content Layout width: wrap_content

16 Fazendo download de um arquivo
AppDownload.java public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button b = (Button) findViewById(R.id.btdownload); b.setOnClickListener(new View.OnClickListener(){ public void onClick(View v) { ImageView imagem = (ImageView) findViewById(R.id.imagem); try { URL url = new URL(" InputStream is = url.openStream(); Bitmap bmp = BitmapFactory.decodeStream(is); imagem.setImageBitmap(bmp);

17 Fazendo download de um arquivo
} catch (Exception e) { AlertDialog.Builder d = new AlertDialog.Builder(AppDownload.this); d.setMessage(e.toString()); d.setTitle("Aviso"); d.setNeutralButton("OK", null); d.show(); } });

18 Fazendo download de uma arquivo
No arquivo AndroidManifest.xml, antes da tag </manifest>, coloque a tag abaixo: <uses-permission android:name="android.permission.INTERNET" />

19 Melhorando! Voltemos a nossa aplicação de galeria de imagem.
Vamos fazer a sua composição apenas de imagens retiradas da internet; Nomes separados por vírgulas (“\\,”) As imagens estão em

20 O componente WebView Esse componente WebView é muito utilizado quando queremos desenvolver um navegador próprio para o nosso dispositivo. Embora o emulador já possua um Browser embutido, o Android fornece um componente próprio voltado para tal finalidade. Ele funciona como um display onde podemos visualizar as páginas da internet. Normalmente, o componente WebView é trabalhado em conjunto com o componente WebSettings.

21 Aplicação de cadastro Project Name: AplicacaoBrowser
Package Name : br.ufpe.cin.android.appbrowser Create Activity: AppBrowser Application Name: Aplicação de Browser Min SDK Version: 10

22 Aplicação de Browser AppNavegador.java
public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); WebView w = new WebView(this); WebSettings ws = w.getSettings(); ws.setSavePassword(false); ws.setSaveFormData(false); ws.setJavaScriptEnabled(true); ws.setSupportZoom(false); w.loadUrl(" setContentView(w); }

23 Aplicação de Browser No arquivo AndroidManifest.xml, antes da tag </manifest>, coloque a tag abaixo: <uses-permission android:name="android.permission.INTERNET" />

24 7. Persistência

25 Programação com banco de dados
O Android tem suporte nativo a um banco de dados relacional: o SQLite ( ). Isto facilita muito o trabalho de armazenamento e leitura de dados no dispositivo. Ao contrário de JME, o Android permite que dados sejam armazenados e recuperados da base de dados através de comandos SQL;

26 Programação com banco de dados
Além de que a base de dados existe fisicamente, podendo ser copiada do dispositivo para uma unidade de backup, por exemplo Ou ainda, o banco de dados pode ser instalado no dispositivo já com os dados pré-carregados etc.

27 Criando o banco de dados
O comando abaixo cria o banco de dados, ou retorna a referência para o mesmo, caso já tenha sido criado. SQLiteDatabase myDB = openOrCreateDatabase( DATABASE_NAME, Context.MODE_PRIVATE,null);

28 A linguagem SQL O SQL foi desenvolvido para ser uma linguagem padrão para operações com Banco de Dados. A linguagem SQL foi elaborada para ser independente de hardware ou do software. Ao usar o SQL, você não precisa saber a respeito do software de banco de dados ou do hardware envolvido em uma operação. Tudo o que você precisa conhecer são os comandos/instruções SQL padrão para solicitar informações, que obrigatoriamente é o mesmo em todos os sistemas que utilizam o SQL.

29 CREATE TABLE O comando CREATE TABLE é usado para criar uma tabela em um banco de dados. CREATE [TEMPORARY] TABLE IF NOT EXISITS [tabela] ([ [coluna1] [tipo de dado1] {NULL|NOT NULL}...])

30 INSERT O comando INSERT é usado para adicionar um ou mais registros em tabela de um banco de dados. INSERT INTO tabela (coluna1, [coluna2, ...]) VALUES (valor1, [valor2, ...])

31 UPDATE O comando UPDATE é usado para atualizar registros em uma ou mais tabelas do banco de dados. UPDATE tabela SET campo1 = valor1 [,campo2 = valor2,...] [WHERE condição]

32 DELETE O comando DELETE é utilizado para remover um ou mais registros de uma tabela no banco de dados. DELETE FROM tabela [WHERE condição]

33 SELECT O comando SELECT é utilizado para recuperar um conjunto de registros de uma ou mais tabelas. Ela recupera zero ou mais linhas, dependendo das condições colocadas. SELECT [DISTINCT] * | expressão [ AS nome_saída ] [, ...] [ FROM tabela1 [t1, tabela2 t2 ...] [ WHERE condição ] [ GROUP BY expressão [, ...] ] [ ORDER BY expressão [ ASC | DESC] [, ...] ] [ LIMIT { contador | ALL } ]

34 Exemplos de SQL usando Android
O comando abaixo pode ser usado para executar as funções do banco de dados: É importante ressaltar que este comando deve ser usado para consultas que NÃO retornam dados (todas as outras, exceto o SELECT). myDB.execSQL(String query)

35 Exemplos de SQL usando Android
Para executar um SELECT, utilizamos o seguinte método: myDB.query(boolean distinct, String table, String[] columns, String selection, String[] selectionArgs, String groupBy, String having, String orderBy, String limit);

36 Exemplos de SQL usando Android
Como exemplos, iremos mostrar o comportamento da função com os comandos INSERT e SELECT. String TABLE_NAME = "pessoa"; String nome = "Nome"; String sobreNome = "Sobrenome" ; String pais = "Pai e Mãe"; Integer idade = 22; myDB.execSQL( "INSERT INTO" +TABLE_NAME +"(nome, sobrenome, pais, idade)" +" VALUES " +"('" + nome + "'," +"'" + sobreNome + "'," +"'"+ pais + "'," +idade + ");");

37 Exemplos de SQL usando Android
Cursor c = myDB.query(TABLE_NAME,newString[] {"nome", "sobrenome", "pais", "idade"},null,null,null,null,null); if(c !=null) { while( ! c.isAfterLast() ) { if( c.getPosition() == -1 ) {c.moveToFirst();} int posColunaNome = c.getColumnIndex("nome"); int posColunaSobreNome = c.getColumnIndex("sobrenome"); int posColunaPais = c.getColumnIndex("pais"); int posColunaIdade = c.getColumnIndex("idade"); String nome = c.getString(posColunaNome); String sobrenome = c.getString(posColunaSobreNome); String pais = c.getString(posColunaPais); intidade = c.getInt(posColunaIdade); c.moveToNext(); }

38 Melhorando! Voltemos mais uma vez para a nossa aplicação de cadastro (a primeira versão); Faça com que a aplicação armazene os dados em um banco de dados dentro do dispositivo Android;

39 Melhorando! [2] Implemente um mecanismo que faça a sincronização do banco de dados remoto (usado nos exemplos de Internet) com o banco de dados local. Implemente uma tela de atualização, com um botão para realizar a ação e um texto indicando a quantidade de registros no banco de dados;

40 Melhorando! [2] CREATE TABLE IF NOT EXISTS pessoa (nome varchar(100) NOT NULL, idade int (11) NOT NULL, profissao varchar(100) NOT NULL)


Carregar ppt "Treinamento em Android"

Apresentações semelhantes


Anúncios Google