teste
Como editar o aluno quando ele for selecionado? Simplesmente abrir a activity Formulario não é o suficiente, precisamos populá-lo com os dados do aluno específico. Como transferir essa informação, sem gerar muito código e classes internas?
Também deixamos preparados para que um longClick em um aluno abra as opções específicas de cada item do listViewdo nosso listaAlunos. Vamos agora implementá-las com algumas das funcionalidades de um smartphone, como sms e ligações telefônicas. Localizaremos o endereço num mapa usando a própria API do Google Maps integrado ao Android e navegaremos no site informado também através da conectividade do dispositivo.
Agora queremos criar a tela de edição de Aluno. Aliás, podemos aproveitar a tela de inserção criada anteriormente. Porém, como utilizar os dados do aluno selecionado no método onItemClick do listener registrado em ListView listaAlunos?
A questão fica: como vou acessar um Aluno da activity ListaAlunosActivity de dentro da nossa FormularioActivity?
Aqui existem várias opções que são bem conhecidas de desenvolvedores Swing: poderíamos ter um atributo estático, com um getter público em ListaAlunosActivity, como por exemplo getAlunoSelecionadoParaEdicao. Essa solução não tem um design muito elegante. Poderíamos eliminar o static se passássemos uma referência a instância deListaAlunosActivity para o FormularioActivity, mas repare que isso não pode ser feito facilmente, já que não somos responsáveis pelo ciclo de vida da Activity, isso é de controle do Android. Repare que nunca demos new em uma Activity, assim como não fazemos isso com servlets, EJBs, e outros componentes que tem ciclo de vida cuidado por um container.
Para casos como esse, as Intents possuem métodos para passar informações de uma Activity a outra. Para colocar um atributo, existe o putExtra, que adiciona elementos como em um mapa e possui sobrecargas para diversos tipos, como int,String e Serializable.
Analogamente, temos getters específicos