Tutorial Android 4 #4 – Obtendo Dados de Um Formulário

Padrão

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 pacote net.rafaeltoledo.meuscontatos.model. A classe terá os campos nome e email, 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 e set 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étodo onClick() 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 aqui.

Por hoje é isso. Aguardem o próximo episódio! 😛

Um comentário sobre “Tutorial Android 4 #4 – Obtendo Dados de Um Formulário

Deixe uma resposta