04 - Obtendo Dados de Um Formulário [Guia #dev Android]

No post anterior começamos o nosso projeto Android criando um formulário, modificando apenas o arquivo XML de layout. Hoje, vamos ver como obter o que foi digitado no formulário para manipularmos dentro de uma Activity.

04 - Obtendo Dados de Um Formulário [Guia #dev Android]

Olá pessoal! No post anterior começamos o nosso projeto Android criando um formulário, modificando apenas o arquivo XML de layout. Hoje, vamos ver como obter o que foi digitado no formulário para manipularmos dentro de uma Activity.

O primeiro passo é criar a classe de negócio (model) que armazenará os dados vindos do formulário. Crie uma classe chamada Contato e salve-a no pacotenet.rafaeltoledo.meuscontatos.model. A classe terá os campos nomeemail, ambos do tipo String. Lembrando que sempre encapsulamos os campos das classes de negócio. A classe Contato ficará assim:

package net.rafaeltoledo.meuscontatos.model;
 
public class Contato {
 
   private String nome;
   private String email;
 
   public String getNome() {
       return nome;
   }
 
   public void setNome(String nome) {
       this.nome = nome;
   }
 
   public String getEmail() {
       return email;
   }
 
   public void setEmail(String email) {
       this.email = email;
   }
}

Aqui vão algumas dicas para o Eclipse: para gerar os métodos get eset automaticamente, pressione Alt + Shift + S e selecione a opção Generate Getters and Setters…. Outra opção é, após criar os atributos, posicionar o cursor sobre eles, pressionar Ctrl + 1 e selecionar a opção create getter and setter for ‘…’. E pra formatar seu código-fonte automaticamente, pressione Ctrl + Shift + F. Por último, pra corrigir os imports automaticamente, o atalho é Ctrl + Shift + O.

A classe Contato simplesmente representa um contato com os dados que definimos no formulário (nome e e-mail). O próximo passo, então, é obtermos os dados do formulário XML e os colocarmos em um objeto do tipo Contato. Abra a Activity MeusContatos e edite-a com o seguinte código.

package net.rafaeltoledo.meuscontatos;
 
import net.rafaeltoledo.meuscontatos.model.Contato;
import android.app.Activity;
import android.os.Bundle;
import android.view.Menu;
import android.view.View;
import android.view.View.OnClickListener;
import android.widget.Button;
import android.widget.EditText;
 
public class MeusContatos extends Activity implements OnClickListener {
 
   private Contato contato = new Contato();
 
   @Override
   protected void onCreate(Bundle savedInstanceState) {
       super.onCreate(savedInstanceState);
       setContentView(R.layout.activity_meus_contatos);
 
       Button salvar = (Button) findViewById(R.id.salvar);
       salvar.setOnClickListener(this);
   }
 
   @Override
   public boolean onCreateOptionsMenu(Menu menu) {
       // Inflate the menu; this adds items to the action bar if it is present.
       getMenuInflater().inflate(R.menu.activity_meus_contatos, menu);
       return true;
   }
 
   @Override
   public void onClick(View v) {
       EditText nome = (EditText) findViewById(R.id.nome);
       EditText email = (EditText) findViewById(R.id.email);
 
       contato.setNome(nome.getText().toString());
       contato.setEmail(email.getText().toString());
   }
}

O grande responsável pelo acesso aos componentes do formulário XML é a classe chamada R. Esta classe é gerada automaticamente, sendo atualizada de acordo com o conteúdo mapeado no arquivo XML. Até por esse motivo, ela fica localizada na pasta gen do projeto, separada do restante dos códigos-fonte.

No código-fonte, o que fazemos é obter o botão declarado no XML (linha 21) e em seguida atribuir um listener (ou "ouvinte") para quando o botão for clicado. Assim, toda vez que alguém clicar no botão salvar, será chamado um determinado método.

Para esse propósito, declaramos fizemos a nossa activity implementar a interface OnClickListener, fazendo com que ela tenha agora o métodoonClick() que será chamado toda vez que o botão for clicado.

Neste caso, obtemos os dois campos (nome email) do XML, jogando-os em duas instâncias da classe EditText. Em seguida, obtemos seus conteúdos e os atribuímos no objeto do tipo Contato chamado contato. Este objeto foi declarado como um membro privado da Activity, sendo previamente instanciado em sua própria inicialização.

Apesar de ainda não ser possível ter uma visualização disso funcionando, experimente executar e verificar se não ocorre nenhum erro ao pressionar o botão Salvar no formulário.

Caso não tenha conseguido acompanhar ou algum outro problema, você pode baixar o projeto abaixo. 

Download do projeto:

5 celulares para NÃO COMPRAR em 2021

Conteúdo relacionado

5 celulares para NÃO COMPRAR em 2021
Celulares

5 celulares para NÃO COMPRAR em 2021

Nem sempre é fácil escolher o smartphone ideal, ainda mais com tantas opções no mercado. Mas e se começarmos eliminando os que não são uma boa opção? Confira 5 modelos que você deve evitar comprar!

Qual a melhor linguagem de programação?
Programação

Qual a melhor linguagem de programação?

Se você iniciou recentemente a graduação em alguma área ligada à tecnologia, seja ciências da computação, engenharia de software, de hardware, segurança da informação, etc. aposto que já se perguntou qual a melhor linguagem de programação, certo?

Meu Site meu App - Como criar aplicativo de seu site
Programação

Meu Site meu App - Como criar aplicativo de seu site

Já imaginou ter seu site ou blog como app? Se até hoje você só imaginou, seus problemas acabaram. Vamos aprender de maneira muito fácil a criar um aplicativo Android para acessar seu site.