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

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

+ Treinamento em Android. + 5. Criando aplicações Android.

Apresentações semelhantes


Apresentação em tema: "+ Treinamento em Android. + 5. Criando aplicações Android."— Transcrição da apresentação:

1 + Treinamento em Android

2 + 5. Criando aplicações Android

3 + Aplicação que soma números Project Name: SomaNumeros Package Name: br.org.citi.appsoma Create Activity: SomaActivity Application Name: Soma Números Build SDK: 16

4 + Aplicação que soma números

5 + res/values/strings.xml Digite o primeiro número: Soma Números Digite o segundo número: Somar

6 + Aplicação que soma números AppSomaNumeros.java public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ednumero1 = (EditText) findViewById(R.id.numero1); ednumero2 = (EditText) findViewById(R.id.numero2); Button btsomar = (Button) findViewById(R.id.btsomar);

7 + Aplicação que soma números btsomar.setOnClickListener( new View.OnClickListener(){ public void onClick(View arg0) { double num1 = Double.parseDouble( ednumero1.getText().toString()); double num2 = Double.parseDouble( ednumero2.getText().toString()); double res = num1 + num2; } });

8 + Aplicação que soma números AlertDialog.Builder dialogo = new AlertDialog.Builder(AppSomaNumeros.this); dialogo.setTitle("Aviso"); dialogo.setMessage("Soma:" + res); dialogo.setNeutralButton("OK", null); dialogo.show(); } }); }

9 + Melhorando! Transforme essa aplicação em uma calculadora de dois números. 4 operações; Crie um método para cada operação; Informe a operação que foi realizada no título do Alert que vai ser exibido.

10 + Aplicação de compras Project Name: AppCompras Package Name: br.org.citi.appcompras Create Activity: ComprasActivity Application Name: Compras Build SDK: 16

11 + Aplicação de compras Dicas e Lembretes: As labels que acompanham os widgets devem ser declaradas no arquivo res/values/strings.xml; A propriedade chave para esse aplicação é a “isChecked()”;

12 + Aplicação de compras No arquivo activity_main.xml, adicionaremos os seguintes elementos, em ordem: CheckBox Text: Arroz (R$ 2,69) CheckBox Text: Leite (R$ 5,00) CheckBox Text: Carne (R$ 9,70) CheckBox Text: Feijão (R$ 2,30) Button Text: Total das compras Layout width: fill_parent

13 + Aplicação de compras AppSistemaCompras.java public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); chkarroz = (CheckBox) findViewById(R.id.chkArroz); chkleite = (CheckBox) findViewById(R.id.chkLeite); chkcarne = (CheckBox) findViewById(R.id.chkCarne); chkfeijao = (CheckBox) findViewById(R.id.chkFeijao); Button bttotal = (Button) findViewById(R.id.bTotal);

14 + Aplicação de compras bttotal.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0) { double total =0; if(chkarroz.isChecked()) total += 2.69; if(chkleite.isChecked()) total += 5.00; if(chkcarne.isChecked()) total += 9.7; if(chkfeijao.isChecked()) total += 2.30; } //Código que exibe o alerta

15 + Melhorando! Implemente uma função de carrinho de compras: À medida que o botão for clicado, a aplicação deve somar os valores e exibir em um texto;

16 + Aplicação de cálculo de salário v1.0 Project Name: AppSalario Package Name: br.org.citi.appsalario Create Activity: SalarioActivity Application Name: Cálculo de Salário Build SDK: 16

17 + Aplicação de cálculo de salário v.1.0

18 + Aplicação de cálculo de salário v1.0 Para essa primeira versão, usaremos RadioGroup e RadioButton; res/layout/main.xml: EditText id: layout_width: “fill_parent”. TextView text: “Qual é o seu percentual ?” RadioGroup layout_width:”fill_parent”; id:

19 + Aplicação de cálculo de salário v1.0 Dentro da tag RadioGroup, insira os elementos abaixo, do tipo RadioButton: RadioButton text: “40%” id RadioButton text: “45%” id: RadioButton text: “50%” id: Button text: “Calcular novo salário” id: layout_width: “fill_parent” Insira também o botão:

20 + Aplicação de cálculo de salário v1.0 AppCalculaSalario.java public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btcalcular = (Button) findViewById(R.id.btcalcular); btcalcular.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0) { double salario, novo_sal; EditText edsalario = (EditText) findViewById(R.id.edsalario);

21 + Aplicação de cálculo de salário v1.0 salario = Double.parseDouble(edsalario.getText().toString()); RadioGroup rg = (RadioGroup) findViewById(R.id.rgopcoes); int op = rg.getCheckedRadioButtonId(); if(op==R.id.rb40) novo_sal = salario + (salario * 0.4); else if(op==R.id.rb45) novo_sal = salario + (salario * 0.45); else novo_sal = salario + (salario * 0.5); //Código que exibe o alerta

22 + Melhorando! Nem todas as pessoas podem saber o valor do salário! Adicione um campo para o usuário informar uma senha para acesso; Se a senha estiver incorreta ou o campo estiver vazio, exiba um alerta informando o mesmo ao usuário; Ao exibir o resultado, limpe os campos de texto e selecione o primeiro RadioButton.

23 + Aplicação de cálculo de salário v1.1 Project Name: AppSalarioSpinner Package Name: br.org.citi.appsalariospinner Create Activity: SalarioSpinnerActivity Application Name: Cálculo Salário v2 Build SDK: 16

24 + Aplicação de cálculo de salário v1.1

25 + res/layout/main.xml Semelhante ao anterior, apenas trocando o RadioGroup pelo Spinner: Spinner: ld: layout_width: “fill_parent”

26 + Aplicação de cálculo de salário v1.1 AppCalculaSalario.java private static final String[] percentual = {"De 40%","De 45%","De 50%"}; ArrayAdapter aPercentual; Spinner spnsal; public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); Button btmostrar = (Button) findViewById(R.id.btcalcular); aPercentual = new ArrayAdapter (this, android.R.layout.simple_spinner_item,percentual); spnsal = (Spinner) findViewById(R.id.spnopcoes); spnsal.setAdapter(aPercentual);

27 + Aplicação de cálculo de salário v1.1 btmostrar.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0) { double salario=0, novo_sal = 0; EditText edsalario = (EditText) findViewById(R.id.edsalario); salario = Double.parseDouble(edsalario.getText().toString()); switch(spnsal.getSelectedItemPosition()) { case 0: novo_sal = salario + (salario * 0.4); break; case 1: novo_sal = salario + (salario * 0.45); break; case 2: novo_sal = salario + (salario * 0.5); break; } //Código para exibir o alerta

28 + Melhorando! Adicione o controle de bonificações de acordo com os cargos listados abaixo: Funcionário: 10%, 15%, 20%; Gerente: 20%, 25%, 30%; Diretor: 30%, 35% 40%; Utiliza DOIS Spinners, onde o segundo só apareça depois que um elemento do primeiro for selecionado! Verificar se o cargo está escolhido ao clicar no botão!

29 + Aplicação de lista telefônica Project Name: AppLista Package Name: br.org.citi.applista Create Activity: MainActivity Application Name: Lista Telefônica Build SDK: 16

30 + Aplicação de lista telefônica

31 + No arquivo main.xml, adicionaremos o elemento: ListView id: layout_width: “fill_parent”

32 + Aplicação de lista telefônica AppLista.java public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ArrayAdapter adapter = new ArrayAdapter (this,android.R.layout.simple_list_item_1, contatos); lista = (ListView) findViewById(R.id.lstcontatos); lista.setAdapter(adapter);

33 + Aplicação de lista telefônica lista.setOnItemClickListener(new OnItemClickListener(){ public void onItemClick(AdapterView parent, View view, int position, long id) { AlertDialog.Builder dialogo = new AlertDialog.Builder(AppLista.this); dialogo.setTitle("Contato selecionado"); dialogo.setMessage(((TextView) view).getText().toString()); dialogo.setNeutralButton("OK", null); dialogo.show(); } });

34 + Desafio! Altere a aplicação para suportar as seguintes funções: Inserir um contato, exibindo um alerta confirmando a operação; Remover um contato ao clicar no mesmo, exibindo ainda um alerta confirmando a operação;

35 + Aplicação que visualiza imagens v1.0 Project Name: AppImagem Package Name: br.org.citi.appimagem Create Activity: MainActivity Application Name: Visualizador de Imagens Build SDK: 16

36 + Aplicação que visualiza imagens

37 + Aplicação que visualiza imagens v1.0 Dentro de res/drawable-mdpi: coala.jpg; farol.jpg; Adicionaremos também um LinearLayout do tipo Horizontal DENTRO do Layout padrão, que contém um objeto ImageView.

38 + Aplicação que visualiza imagens v1.0 Ao adicionar os elementos pelo Graphical Layout, altere as propriedades para ficarem como estão abaixo:

39 + Aplicação que visualiza imagens v1.0 No arquivo main.xml, adicionaremos os elementos em ordem: TextView id: text: “Foto 1” Button1 id: text: “Exibir foto 1” layout_width: “fill_parent” Button2 id: text: “Exibir foto 2” layout_width: “fill_parent”

40 + Aplicação que visualiza imagens v1.0 AppImage.java public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); //Pega as referências de todos os componentes da tela Button btfoto1 = (Button) findViewById(R.id.btimagem1); Button btfoto2 = (Button) findViewById(R.id.btimagem2); imagem = (ImageView) findViewById(R.id.imagem); txt = (TextView) findViewById(R.id.txtinfo);

41 + Aplicação que visualiza imagens v1.0 btfoto1.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0) { imagem.setImageResource(R.drawable.coala); txt.setText("Foto 1"); } }); btfoto2.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0) { imagem.setImageResource(R.drawable.farol); txt.setText("Foto 2"); } }); }

42 + Melhorando! Coloque mais 3 imagens na pasta res/drawable- mdpi; Faça a seleção das mesmas através de um Spinner; Dê a possibilidade do usuário editar o nome dessa imagem, que possui um valor default; Imagem 1, Imagem 2,...

43 + Aplicação que visualiza imagens v1.1 Project Name: AppGaleria Package Name: br.org.citi.appgaleria Create Activity: MainActivity Application Name: Galeria de Imagens Build SDK: 16

44 + Aplicação que visualiza imagens v1.1

45 + No arquivo main.xml, adicionaremos o elemento: Para essa aplicação, criaremos uma classe auxiliar: ImageAdapter. Gallery id: layout_width: “fill_parent”

46 + Aplicação que visualiza imagens v1.1 ImageAdapter.java package br.ufpe.cin.android.appgallery; import android.content.Context; import android.view.*; import android.widget.*; public class ImageAdapter extends BaseAdapter { private Context myContext; private int[] myImageIds = { R.drawable.coala, R.drawable.farol, R.drawable.pinguins, }; public ImageAdapter(Context c) { this.myContext = c; }

47 + Aplicação que visualiza imagens v1.1 public int getCount() { return this.myImageIds.length; } public Object getItem(int position) { return position; } public long getItemId(int position) { return position; } public View getView(int position, View convertView, ViewGroup parent) { ImageView i = new ImageView(this.myContext); i.setImageResource(this.myImageIds[position]); i.setScaleType(ImageView.ScaleType.FIT_XY); i.setLayoutParams(new Gallery.LayoutParams(150, 150)); return i; } public float getScale(boolean focused, int offset) { return Math.max(0, 1.0f / (float)Math.pow(2, Math.abs(offset))); }

48 + Aplicação que visualiza imagens v1.0 AppGallery.java public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); ((Gallery) findViewById(R.id.gallery)).setAdapter(new ImageAdapter(this)); }

49 + Melhorando! Coloque, na aplicação, outra galeria, e implemente dois botões que trocam as imagens de galeria

50 + Mudança de Layout Project Name: AppLayouts Package Name: br.org.citi.applayouts Create Activity: MainActivity Application Name: Visualizador de Imagens Build SDK: 16

51 + Mudança de Layout

52 + No arquivo main.xml, adicionaremos o elemento: Button: id: layout_width: “fill_parent” text: “Ir pata tela 2” Crie um arquivo “tela2.xml” na pasta res/layout e adicione os seguintes elementos: TextView text: “Você está na tela 2” Button id: layout_width: “fill_parent” text: “Ir pata tela principal”

53 + Mudança de Layout AppLayout.java public void CarregaTelaPrincipal() { setContentView(R.layout.main); Button bttela2 = (Button) findViewById(R.id.bttela2); bttela2.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0) { CarregaTela2(); } }); }

54 + Mudança de Layout public void CarregaTela2() { setContentView(R.layout.tela2); Button bttelaprincipal = (Button) findViewById(R.id.bttelaprincipal); bttelaprincipal.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0) { CarregaTelaPrincipal(); } }); }

55 + Mudança de Layout public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); CarregaTelaPrincipal(); }

56 + Aplicação de cadastro Project Name: AppCadastro Package Name: br.org.citi.appcadastro Create Activity: MainActivity Application Name: Cadastro Build SDK: 16

57 + Aplicação de cadastro

58 + main.xml Button Id: layout_width: “fill_parent” text: “Cadastrar pessoa” Button Id: layout_width: “fill_parent” text: “Listar pessoas cadastradas”

59 + Aplicação de cadastro cadastro.xml TextView text: “Módulo de cadastro. Digite seus dados abaixo:” TextView text: “Nome:” EditText id: layout_width: “fill_parent” TextView text: “Profissão:” EditText id: layout_width: “fill_parent” TextView text: “Idade:” EditText id: layout_width: “fill_parent”

60 + Aplicação de cadastro cadastro.xml LinearLayout orientation: horizontal layout_widith: fill_parent gravity: center Button id: text: “Cadastrar pessoa” Button id: text: “Cancelar”

61 + Aplicação de cadastro listacadastrados.xml TextView text: “Lista de pessoas cadastradas.” textColor: “#ffffff” textSize: “20sp” LinearLayout orientation: horizontal layout_widith: fill_parent id: TextView text: “Nome:” textColor: “#ffff00” textSize: “20sp” TextView text: “” TextColor “#ffffff” textSize “20sp” id:

62 + Aplicação de cadastro listacadastrados.xml LinearLayout orientation: horizontal layout_widith: fill_parent id: TextView text: “Profissao:” textColor: “#ffff00” textSize: “20sp” TextView text: “” TextColor “#ffffff” textSize “20sp” id:

63 + Aplicação de cadastro listacadastrados.xml LinearLayout orientation: horizontal layout_widith: fill_parent id: TextView text: “Idade:” textColor: “#ffff00” textSize: “20sp” TextView text: “” TextColor “#ffffff” textSize “20sp” id:

64 + Aplicação de cadastro listacadastrados.xml LinearLayout orientation: horizontal layout_widith: fill_parent gravity: center id: Button id: text: “Voltar” Button id: text: “Avançar” Button id: layout_width: “fill_parent” text: “Menu Princiapal”

65 + Aplicação de cadastro Registro.java public class Registro { String nome; String profissao; String idade; Registro Prox; Registro Ant; }

66 + Aplicação de cadastro AppLayout.java void CarregaTelaPrincipal () { setContentView(R.layout.main); Button btcadpess = (Button) findViewById(R.principal.btcadastrarpessoas); Button btlistapess = (Button) findViewById(R.principal.btlistarpessoas); btcadpess.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0){ CarregaTelaCadastro(); }}); btlistapess.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0){ CarregaListaPessoas(); }}); }

67 + Aplicação de cadastro void CarregaTelaCadastro() { setContentView(R.layout.cadastro); Button btcadastrar = (Button) findViewById(R.cadastro.btcadastrar); Button btcancelar = (Button) findViewById(R.cadastro.btcancelar); btcadastrar.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0){ try { reg = new Registro(); ednome = (EditText)findViewById(R.cadastro.ednome); edprof = (EditText)findViewById(R.cadastro.edprofissao); edidade = (EditText)findViewById(R.cadastro.edidade);

68 + Aplicação de cadastro reg.nome = ednome.getText().toString(); reg.profissao = edprof.getText().toString(); reg.idade = edidade.getText().toString(); if(pri==null) pri=reg; reg.Ant = ult; if(ult==null) ult=reg; else { ult.Ant = reg; ult=reg; } numreg++; showMessage("Cadastro efetuado comsucesso", "Aviso"); CarregaTelaPrincipal(); } catch(Exception e) { showMessage("Erro ao cadastrar", "Erro"); }} });

69 + Aplicação de cadastro btcancelar.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0){ CarregaTelaPrincipal(); } }); } void CarregaListaPessoas() { if(numreg==0) { showMessage("Nenhum registro cadastrado", "Aviso"); CarregaTelaPrincipal(); return; } setContentView(R.layout.listacadastrados); pos=1; aux=pri;

70 + Aplicação de cadastro TextView txtnome = (TextView) findViewById(R.lista.txtnome); TextView txtidade = (TextView) findViewById(R.lista.txtidade); TextView txtprofissao = (TextView) findViewById(R.lista.txtprofissao); Button btmenu = (Button) findViewById(R.lista.btmenu); Button btavancar = (Button) findViewById(R.lista.btavancar); Button btvoltar = (Button) findViewById(R.lista.btvoltar); txtnome.setText(aux.nome); txtidade.setText(aux.idade); txtprofissao.setText(aux.profissao); btmenu.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0){ CarregaTelaPrincipal(); } });

71 + Aplicação de cadastro btvoltar.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0){ if(pos==1) return; pos--; aux=aux.Ant; TextView txtnome = (TextView) findViewById(R.lista.txtnome); TextView txtidade = (TextView) findViewById(R.lista.txtidade); TextView txtprofissao = (TextView) findViewById(R.lista.txtprofissao); txtnome.setText(aux.nome); txtidade.setText(aux.idade); txtprofissao.setText(aux.profissao); } });

72 + Aplicação de cadastro btavancar.setOnClickListener(new View.OnClickListener(){ public void onClick(View arg0){ if(pos==numreg) return; pos++; aux=aux.Prox; TextView txtnome = (TextView) findViewById(R.lista.txtnome); TextView txtidade = (TextView) findViewById(R.lista.txtidade); TextView txtprofissao = (TextView) findViewById(R.lista.txtprofissao); txtnome.setText(aux.nome); txtidade.setText(aux.idade); txtprofissao.setText(aux.profissao); } }); }

73 + Aplicação de cadastro Registro pri,reg,ult,aux; EditText ednome,edprof,edidade; int numreg,pos; public void onCreate(Bundle savedInstanceState){ super.onCreate(savedInstanceState); numreg=0; pri=null; ult=null; CarregaTelaPrincipal(); } public void showMessage(String Caption,String itle) { AlertDialog.Builder dialogo = new AlertDialog.Builder(AppCadastro.this); dialogo.setTitle(Title); dialogo.setMessage(Caption); dialogo.setNeutralButton("OK", null); dialogo.show(); }

74 + Melhorando! Vamos adicionar uma imagem associada à pessoa cadastrada; Essa imagem deve ser escolhida de uma galeria (obviamente, contendo mais de uma imagem); Habilite a função de edição, onde todos os dados serão alterados; DICA: Use a mesma tela do cadastro!


Carregar ppt "+ Treinamento em Android. + 5. Criando aplicações Android."

Apresentações semelhantes


Anúncios Google