Ola amigos.Neste post veremos como e possivel passar um valor de uma pagina (layout) para outra pagina em uma aplicacao Android.Existe uma pequena diferenca entre passar um objeto do tipo primitivo e um objeto composto.Abordaremos ambas as solucoes a seguir.A funcionalidade e bem parecida com uma implementacao de Map, do Java, onde voce cria um objeto e nele voce seta um objeto e sua respectiva chave e o recupera posteriormente.Para passar um simples objeto.Para "chamar" uma nova pagina, criamos um objeto do tipo Intent, como ja vimos no blog.Para passarmos algum valor/objeto entre telas, precisamos adicionar "extras" no nosso objeto, da forma descrita abaixo:// Cria a chamada para a pagina Page2Intent myIntent = new Intent(v.getContext(), Page2.class);// seta um valor extra, utilizando uma chave e um valor.myIntent.putExtra("chaveTeste", "Novo Objeto");// Inicia a nova pagina.startActivity(myIntent);Chamamos o metodo putExtra(chave,valor) passando uma "chave" que e um identificador para voce poder recuperar o valor passado em outra tela e tambem pare diferenciar caso voce passe outros valores no mesmo Intent. E tambem passasse como segundo parametro um valor, que pode ser um objeto do tipo primitivo ou composto. Para ver a lista de objetos aceitos pelo metodo, favor checar na API do Android : http://developer.android.com/reference/android/content/Intent.htmAgora, na outra tela, precisamos resgatar este valor, portanto fazemos da seguinte maneira:Bundle extras = getIntent().getExtras();String novoTexto = (String) extras.get("chaveTeste");Simples nao? So precisamos chamar o metodo getIntent() e o getExtras() dele que teremos um objeto do tipo Bundle, que contem os valores passados neste Intent. Depois disso, basta usarmos o metodo .get() passando a chave utilizada que recuperamos o objeto. Voce precisara fazer um Cast para o seu tipo, pois o metodo extras.get() retorna um Object.Para passar um objeto criado por voce.Para essa situacao, seu objeto deve implementar a interface Parcelable, como fiz no exemplo abaixo:package com.navegandoentrelayouts;import android.os.Parcel;import android.os.Parcelable;public class Usuario implements Parcelable { // Propriedades private long registro; private String nome; // Construtores public Usuario() { } public Usuario(long registro, String nome) { super(); this.registro = registro; this.nome = nome; } public Usuario(Parcel in) { readFromParcel(in); } // Getters e setters public long getRegistro() { return registro; } public String getNome() { return nome; } public void setRegistro(long registro) { this.registro = registro; } public void setNome(String nome) { this.nome = nome; } // Metodo auxilirares @Override public int describeContents() { return 0; } @Override public void writeToParcel(Parcel out, int flags) { out.writeLong(registro); out.writeString(nome); } private void readFromParcel(Parcel in) { registro = in.readLong(); nome = in.readString(); } @SuppressWarnings("unchecked") public static final Parcelable.Creator CREATOR = new Parcelable.Creator() { public Usuario createFromParcel(Parcel in) { return new Usuario(in); } public Usuario[] newArray(int size) { return new Usuario[size]; } };}O proximo passo e setar o objeto no Intent:// Cria a chamada para a pagina Page2Intent myIntent = new Intent(v.getContext(), Page2.class);// Crio o meu objeto.Usuario usuario = new Usuario(15L, "Rafael");// seta um valor extra, utilizando uma chave e um valor.myIntent.putExtra("usuario", usuario);// Inicia a nova pagina.startActivity(myIntent);Para recuperar o objeto enviado utilizaremos uma outra forma. E e por esta razao que implementamos a interface Parcelable.Desta vez, voce nao ira chamar o metodo .get() para recuperar o Bundle, e sim o