Para este ejemplo sera necesario usar la misma estructura que manejamos en este tutorial
ir al tutorial
ir al tutorial
Una vez que completamos los intents y nos movemos por ventanas ahora necesitaremos recuperar los datos que se encuentran en un Activity y poderlo mostrar en otro activity para ello realizaremos cambios en algunos de los archivos que utilizamos en el anterior tutorial para poder realizarlo con exito.
1.- Primero modificaremos el segundomain.xml para agregarle un texto y podramos capturarlo y depues mostrarlo en otro Activity.
segundomain.xml
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:orientation="vertical" android:layout_width="fill_parent" android:layout_height="fill_parent" > <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Esta es la segunda activity" /> <TextView android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Introduce tu poderoso nombre:" /> <EditText android:id="@+id/nombre" android:layout_width="fill_parent" android:layout_height="wrap_content" /> <Button android:id="@+id/btn_OK" android:layout_width="fill_parent" android:layout_height="wrap_content" android:text="Aceptar" android:onClick="onClick" /> </LinearLayout>
2.- Lo siguiente sera modificar el Activity2.java para poder agregarle la nueva funcionalidad que necesitara para pasar los datos.
Activity2.java
package kenny.master.kenny; import android.app.Activity; import android.os.Bundle; //librerias para este ejemplo import android.content.Intent; import android.net.Uri; import android.view.View; import android.widget.EditText; public class Activity2 extends Activity { @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); //Agregamos el archivo xml de la segundomain setContentView( R.layout.segundomain ); } //Creo mi evento onClick public void onClick(View v ) { Intent data = new Intent(); //Obtengo el valor del editText EditText nombre = (EditText) findViewById(R.id.nombre); //Establesco los datos para poderlos pasar. data.setData(Uri.parse(nombre.getText().toString())); setResult(RESULT_OK, data); //Cierro la activity finish(); } }
3.- Finalmente modificaremos el MyActivity.java para mostrar los datos introducidos y recuperados del anterior activity que es Activity2 y mostrar el resultado.
MyActivity.java
package kenny.master.kenny; import android.app.Activity; import android.os.Bundle; //librerias a utilizar import android.content.Intent; import android.view.View; import android.widget.Toast; public class MyActivity extends Activity { //una bandera que nos servira para verificar que estamos mandando bien el uri int request_code = 1; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.main); } //Creamos nuestros evento onClick public void onClick( View v ) { //le pasaremos el intent y codigo de respuesta startActivityForResult(new Intent("kenny.master.Activity2"), request_code); } //Si la peticion que pedimos fue correcta, entonces mostrara el dato de la anterior activy //y la mostrara en esta activy public void onActivityResult( int requestCode, int resultCode, Intent data) { if( requestCode == request_code ) { if(resultCode == RESULT_OK ) { Toast.makeText(this, data.getData().toString(), Toast.LENGTH_SHORT).show(); } } } }
No hay comentarios:
Publicar un comentario