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();
    }

}

results matching ""

    No results matching ""