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

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

+ Treinamento em Android. + 6. Programação para internet.

Apresentações semelhantes


Apresentação em tema: "+ Treinamento em Android. + 6. Programação para internet."— 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 Layout width: fill_parent 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, coloque a tag abaixo:

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 EditText Layout width: fill_parent 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("http://www.lfliborio.com.br/android/php/cadastrar_dados.p 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) { AlertDialog.Builder d = new AlertDialog.Builder(AppSend.this); d.setMessage(e.toString()); d.setNeutralButton("OK", null); d.setTitle("Erro"); d.show(); } }); }

12 + Enviando informações para uma URL No arquivo AndroidManifest.xml, antes da tag, coloque a tag abaixo:

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: 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("http://www.lfliborio.com.br/android/php/logo.png"); 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, coloque a tag abaixo:

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("http://www.globo.com"); setContentView(w); }

23 + Aplicação de Browser No arquivo AndroidManifest.xml, antes da tag, coloque a tag abaixo:

24 + 7. Persistência

25 + Programação com banco de dados O Android tem suporte nativo a um banco de dados relacional: o SQLite (http://www.sqlite.org ).http://www.sqlite.org 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. + 6. Programação para internet."

Apresentações semelhantes


Anúncios Google