Segunda aplicación
En esta aplicación vamos a crear una nueva activity y vamos a utilizar un objeto nuevo
Bundle: Permite pasar datos entre activities , permite tener una lista de clave,valor
¿Qué vamos hacer?
Vamos a modificar el evento click, para que al realizar click , genere un intent y inicie otra activity y muestre el mismo mensaje que teniamos, pero en la otra activity.
Creemos una nueva activity
Nos paramos en el proyecto, botón derecho, crear nueva activity , elegimos empty activity.
Nombre: SegundaActivity
¿Cómo inicio una activity?
Intent i = new Intent(this,SegundaActivity.class);
startActivity(i);
El constructor del intent, recibe la activity donde estoy actualmente this, y la activity a donde quiero ir, SegundaActivity
Si modificamos el metodo enviarClick
public void enviarClick(View v){
Intent i = new Intent(this,SegundaActivity.class);
startActivity(i);
}
Al hacer click en el botón se irá a la nueva activity.
¿Cómo paso datos entre activities?
Ahí usamos el objeto Bundle
public void enviarClick(View v){
Intent i = new Intent(this,SegundaActivity.class);
i.putExtra("email",editTextEmail.getText().toString());
startActivity(i);
}
En el caso que quiera pasar un objeto compuesto, por ejemplo una clase Persona, tiene que estar serializable.
¿Cómo obtengo los datos?
Bundle bundle = this.getIntent().getExtras();
SegundaActivity
public class SegundaActivity extends AppCompatActivity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_segunda);
Bundle bundle = this.getIntent().getExtras();
mostrarMensaje((String)bundle.get("email"));
}
private void mostrarMensaje(String email){
Toast.makeText(this,"Hola " + email, Toast.LENGTH_SHORT).show();
}
}