1.
Crea un nuevo proyecto con
nombre ComunicacionActividades.
2.
El Layout de la actividad inicial ha de ser
similar al que se muestra abajo a la izquierda.
Creamos el primer layout donde
pondremos un campo de texto y un botón para enviar el nombre introducido a la
siguiente actividad.

3.
El Layout correspondiente a la segunda actividad.

4.
En esta actividad se podrán pulsar dos botones, de forma
que se devuelva a la actividad principal elString “Aceptado” o
“Rechazado”, según el botón pulsado. Al pulsar cualquier botón se regresará a
la actividad anterior.
Una vez creado las vistas
debemos crear e implementar en nuestro AndroidManifest una nueva subactividad,
SubActividad.java.
En la cual crearemos unas
variables globales en la principal como el campo de texto para después poder
sacar los datos mediante getText.
ACTIVITY_MAIN
public void
llamarSubActividad(){
EditText eText = (EditText)
findViewById(R.id.editText1);
Intent i = new Intent(this,SubActividad.class );
//Creo un intent para lanzar la
subactividad
i.putExtra("nombre", eText.getText().toString());
startActivityForResult(i, OpcionElegida);
//lanzo la activida con
startActivityForResult y le paso el código que tiene que devolver si todo ha
ido bien
}
protected void
onActivityResult(int requestCode,int resultCode, Intent
pData)
{
if (resultCode == Activity.RESULT_OK )
//Si resultCode es igual a ok
{
final String dato = pData.getExtras().getString(SubActividad.estadoSub );
//Obtengo el string de la
subactividad
//Aquí se hara
lo que se desee con el valor recuperado
contenido.setText(dato);
//El valor recogido en dato es un
string que será mostrado en el TextView de la actividad principal
}
}
}
SUBACTIVITY_MAIN
public static final String estadoSub = "";
public static boolean resultado = false;
@Override
protected void
onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
/**Creamos los objetos para despues poder sacar el texto o el resultado.
setContentView(R.layout.nombre);
TextView tView = (TextView)
findViewById(R.id.tvNombre);
Bundle extras =
getIntent().getExtras();
tView.setText(extras.getString("nombre"));
Button baceptar = (Button)
findViewById(R.id.aceptar);
Button bdenegar = (Button)
findViewById(R.id.denegar);
//Añadimos un
listener a cada boton cambiando la variable RESULTADO en cada momento
bdenegar.setOnClickListener(new
OnClickListener() {
public void onClick(View
view) {
resultado = false;
llamarActividad1();
}
});
baceptar.setOnClickListener(new
OnClickListener() {
public void onClick(View
view) {
resultado = true;
llamarActividad1();
}
});
}
@Override
public boolean
onCreateOptionsMenu(Menu menu) {
// Inflate the menu; this adds items to the action bar if it is present.
getMenuInflater().inflate(R.menu.main, menu);
return true;
}
//Dependiendo de resultado añadimos un
cantenido u otro a estadoSub.
public void
llamarActividad1() {
Intent dato = new Intent();
if (resultado == true) {
dato.putExtra(estadoSub, "Aceptadas");
}
else {
dato.putExtra(estadoSub, "Denegadas");
}
setResult(android.app.Activity.RESULT_OK, dato);
finish();
}
}
5.
En la actividad principal se modificará el texto del
último TextView para que ponga “Resultado: Aceptado” o
“Resultado:Rechazado”, según lo recibido.
Aquí tenemos el resultado de pulsar un botón u otro en la segunda
actividad.

