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