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 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 Aplicação que soma números
res/values/strings.xml <?xml version="1.0" encoding="utf-8"?> <resources> <string name="hello">Digite o primeiro número:</string> <string name="app_name">Soma Números</string> <string name="text2">Digite o segundo número:</string> <string name="labelSomar">Somar</string> </resources>

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) Text: Leite (R$ 5,00) 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 text: “45%” id: text: “50%” id: Insira também o botão: Button text: “Calcular novo salário” id: layout_width: “fill_parent”

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); 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 Aplicação de cálculo de salário v1.1
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<String> 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<String>(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 Aplicação de lista telefônica
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<String> adapter = new ArrayAdapter<String>(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: <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" > <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" /> </LinearLayout>

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”

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 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 Aplicação que visualiza imagens v1.1
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 Mudança de Layout 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 Aplicação de cadastro main.xml Button
Id: layout_width: “fill_parent” text: “Cadastrar pessoa” Id: text: “Listar pessoas cadastradas”

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

60 Aplicação de cadastro cadastro.xml LinearLayout
orientation: horizontal layout_widith: fill_parent gravity: center Button id: text: “Cadastrar pessoa” 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” 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” 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” 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” 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(){ 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 com sucesso", "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"

Apresentações semelhantes


Anúncios Google