32
Curso Básico de Android Aula 2

Aula 2. Transição entre activities É feita usando o método startActivity, passando como parâmetro uma variável da classe Intent, correspondente à activity

Embed Size (px)

Citation preview

Curso Bsico de Android

Curso Bsico de AndroidAula 2

Transio entre activities feita usando o mtodo startActivity, passando como parmetro uma varivel da classe Intent, correspondente activity desejadaO intent ser criado com o contexto da aplicao e a classe da activity desejadaExemplo: Intent i = new Intent(getApplicationContext(), SecondScreen.class);startActivity(i);

Transio entre activitiesPodem ser levados parmetros, usando o mtodo putExtra, passando uma chave e o valor desejado Exemplo: i.putExtra("key", "value");Para recuperar parmetros de outra activity, usado o mtodo getStringExtraExemplo:Intent i = getIntent();i.getStringExtra("key");

ExemploVamos usar um boto para mudar entre activities, passando um nome digitado num EditText na primeira activity para uma saudao na segunda, que conter um boto para voltar primeiraMenu um componente que fornece opes, no canto direito superior da activity configurado por arquivos xml, localizados na pasta menu criado pelo mtodo onCreateOptionsMenu(Menu menu) Seus eventos so gerenciados no mtodo onOptionsItemSelected(MenuItem item)ExemploVamos modificar nossa aplicao, para que a transio seja feita com menusMembros estticosSo atributos e mtodos que podem ser chamados em uma classe mesmo que no tenha sido criada uma instncia desta classeConjunto de instrues de um programa que pode ser chamado por um nome, sendo idealpara evitar a repetio de cdigo

Exemplopublic class Utilitaria { public static int soma(int a,int b) { return a + b; }}

O mtodo esttico e inteiro soma() recebe como parmetros dois inteiros, a e b, os soma e retornaExercciosAcresente classe Utilitaria os mtodos:double media (double a, double media), que retorne a mdia aritmtica entre a e bint somatorio(int n), que retorne o resultado do somatrio 1 + 2 + 3 + ... + nint fatorial(int n), que retorne o fatorial de n

Classes e objetosClasse:representa um molde, a partir do qual podem ser instanciados objetos com caractersticas afins. Uma classe define o comportamento dos objetos atravs de seus mtodos (comportamento), e quais estados ele capaz de manter atravs de seus atributos (estado)Objeto/instnciade uma classe: um objeto capaz de armazenar estados atravs de seus atributos e reagir a mensagens enviadas a ele, assim como se relacionar e enviar mensagens a outros objetosEstado e comportamentoAtributos:representam o estado de um objeto. Basicamente a estrutura de dados que vai representar a classe. Por exemplo: Funcionrio: nome, endereo, telefone, CPFMtodos:definem o comportamento dos objetos. Por exemplo, a classe Circulo pode implementar o mtodo area(), que retorne sua reaGetters e SettersEm linguagens orientadas a objetos, por padro, atributos so definidos como privados (private), o que tira o acesso direto a eles por classes externasPara conceder acesso de visualizao do estado de um objeto, so usados os getters, mtodos get(). Por exemplo: para recuperar o cpf de um funcionrio, ser usado o mtodo getCpf()Para modificar o estado de um objeto, so usados os mtodos setters, mtodos set(). Por exemplo, para modificar o salrio de um funcionrio, ser usado o mtodo setSalario()Exemplopublic class Pessoa { private String nome; private int idade;

public String getNome() { return nome; }

public void setNome(String nome) { this.nome = nome; }}

A classe Pessoa possui dois atributos, nome e idade, que definem seu estado. O mtodo getNome() recupera o nome do objeto, e o mtodo setNome() permite modificar o nomeInstanciao de objetosPara declarar um objeto, usa-se a notao padro, ou seja, o tipo seguido de seu identificador. Por exemplo, para declarar um objeto chamado p do tipo Pessoa: Pessoa p;Para instanciar um objeto, usada a palavra reservada new. Por exemplo, para instanciar um objeto do tipo Pessoa: Pessoa p = new Pessoa();

ExemploVamos instanciar um objeto da classe Pessoa, modificar seu nome e recuper-lo para exibio num TextViewExerccioAcrescente classe Pessoa os mtodos getIdade() e setIdade()Modifique a aplicao, para que ela atribua ao objeto p um nome e uma idade entrados pelo teclado, e exiba seus dados na tela

ConstrutorPermitem definir o estado inicial do objeto no momento de sua instanciaoNo tm tipo de retornoSeu identificador o mesmo de sua classeExemplopublic class Pessoa { private String nome; private int idade;

public Pessoa(String nome, int idade) { this.nome = nome; this.idade = idade; }}ExemploVamos instanciar um objeto da classe Pessoa, iniciar seus atributos com o construtor, e recuper-los para exibio em TextViewsListas dinmicasSo estruturas de dados dinmicas, ou seja, no tm sua capacidade definida na instanciaoSo implementadas pelas classes ArrayList e LinkedList

SintaxeInstanciaoArrayList identificador = new ArrayList();Incluso de itens na listaidentificador.add(item);Recuperao de itensidentificador.get(ndice);Tamanho da listaIdentificador.size();ExemploVamos instanciar uma ArrayList, preench-la com os valores 3, 4.5 e Java e exib-los num TextViewType CastingEntretanto, se quisermos atribuir algum dos itens da lista a uma varivel, no poderemos fazer simplesmente:int x = al.get(0);Pois isso dar incompatibilidade de tipos (int esquerda, Object direita) Para resolver isso, usamos type casting, ou coero de tipo:int x = (int)al.get(0);GenericsPorm, essa soluo abre a possibilidade de erros em tempo de execuo, em caso de casting erradoSe quisermos definir no momento da declarao o tipo dos dados a ser inseridos na lista, usamos generics:ArrayList identificador = new ArrayList();WrappersEntretanto, no podemos definir o tipo como um tipo primitivo (int, double, boolean, etc)Por isso, se quisermos declarar nossa lista com tipos como esses, usamos as classes wrappers (empacotadoras):Integer para int, Double para double, Boolean para boolean, etc)

ExemploVamos instanciar uma ArrayList de inteiros, preench-la com os valores 1, 2 e 3 e exib-los num TextView

ExerccioImplemente as classes:SomaLista, que preencha uma lista com os inteiros de 1 a 1000 e exiba na tela o somatrio de seus itensMediaTurma, que leia as notas de n alunos (n entrado pelo usurio), e exiba a nota mdia da turma

ListViewListView um componente que mostra uma lista de itens Os itens da lista so automaticamente inseridos usando um adapter, implementado pela classe ArrayAdapter, a partir de um fonte de dados, como uma lista ou uma consulta a um BDO adapter contruindo usando o contexto da aplicao, o tipo de listView (em nosso caso, android.R.layout.simple_list_item_1) e a fonte de dados a preench-laExemploVamos instanciar uma ArrayList de Strings, popul-la com valores arbitrrios, e preencher com ela um ListViewExerccioImplemente a aplicao Listagem, com a classe:NomeController, com o atributo esttico alunos (ArrayList); o mtodo esttico void adicionar (String nome) e o mtodo esttico getNomes();Duas activities:MainActivity, com um EditText; um boto para chamar o mtodo adicionar da classe NomeController, passando o nome digitado no EditText; e um item de menu para a transio para a segunda ActivityListaActivity, que exiba um ListView com os nomes adicionados na primeira activity; e um item de menu para voltar a MainActivityExerccioImplemente a aplicao Academica, com as classes: Aluno, com os atributos nome (String), telefone (String) e email (String); getters, setters e construtorAlunoController, com o atributo esttico alunos (ArrayList), o mtodo esttico void adicionar(Aluno a) e o mtodo esttico getAlunos()

Exerccio (continuao)Trs activities:MainActivity, com um EditText; um boto para chamar o mtodo adicionar da classe NomeController, passando um aluno com os dados digitados nos EditTexts; e um item de menu para a transio para a segunda ActivityListaActivity, que exiba um ListView com os nomes adicionados na primeira activity; e um item de menu para voltar a MainActivity; um clique num item da lista chamar a terceira activityDadosActivity, que exiba em TextViews os dados do aluno selecionado em ListaActivity