A fin de enviar parámetros entre una Activity debes utilizar la clase Intent que te sirve para solicitar acciones de tu aplicación. Intent describe la Actividad que quieres abrir y los parámetros que deseas enviarle.
Cómo enviar parámetros a una Activity:
Para iniciar una Activity debemos crear un intent con el contexto y la class de la segunda Activity.
Luego al intent le seteas los parámetros con key_del_parametro / valor_del_parametro
...
Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
intent.putExtra("DATA_NAME_KEY", name.getText().toString());
intent.putExtra("DATA_LASTNAME_KEY", lastname.getText().toString());
...
Cómo recibir parámetros desde una Activity:
Los parámetros los recibes en el método “onCreate” que inicializa tu actividad dentro del parámetro Bundle
if (bundle != null) {
String nameParam = bundle.getString("DATA_NAME_KEY");
String lastNameParam = bundle.getString("DATA_LASTNAME_KEY");
textViewName.setText(nameParam);
textViewLastname.setText(lastNameParam);
}
Una forma corta que también puedes utilizar
getIntent().getStringExtra("DATA_NAME_KEY")
El código completo te queda de este modo
En este ejemplo hay dos activities, la primera pide dos datos y los pasa a la segunda que los muestra.
public class MainActivity extends AppCompatActivity {
private EditText name;
private EditText lastname;
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
name = (EditText) findViewById(R.id.name);
lastname = (EditText) findViewById(R.id.lastname);
}
public void sendParam(View view) {
Intent intent = new Intent(getApplicationContext(), SecondActivity.class);
intent.putExtra("DATA_NAME_KEY", name.getText().toString());
intent.putExtra("DATA_LASTNAME_KEY", lastname.getText().toString());
startActivity(intent);
}
}
public class SecondActivity extends AppCompatActivity {
private TextView textViewName;
private TextView textViewLastname;
@Override
protected void onCreate(Bundle bundle) {
super.onCreate(bundle);
setContentView(R.layout.activity_second);
textViewName = (TextView) findViewById(R.id.textViewName);
textViewLastname = (TextView) findViewById(R.id.textViewLastname);
if (bundle != null) {
String nameParam = bundle.getString("DATA_NAME_KEY");
String lastNameParam = bundle.getString("DATA_LASTNAME_KEY");
textViewName.setText(nameParam);
textViewLastname.setText(lastNameParam);
}
// short way to get intent paramts
// textViewName.setText(getIntent().getStringExtra("DATA_NAME_KEY"));
// textViewLastname.setText(getIntent().getStringExtra("DATA_LASTNAME_KEY"));
}
}
Descarga este código completo para visualizar en Android Studio
Hi! If you find my posts helpful, please support me by inviting me for a coffee :)