lunes, 12 de noviembre de 2012

Como pasar datos entre dos activity en #Android

En Android a menudo tenemos que pasar un parámetro o un valor desde una pantalla o activity a otra pantalla. Por ejemplo, cuando tenemos una lista y seleccionamos un elemento de dicha lista y queremos tratar dicho elemento en una pantalla siguiente.

Supongamos que tenemos nuestra aplicación Android y ahora mismo estamos en una pantalla en la que podemos ver una lista como la que mostramos a continuación:


Este activity se llama ListPerson.java y queremos que cuando se seleccione uno de los elementos de la lista se pase a otro activity llamado EditPerson.java. El código que se encarga de escoger el seleccionado y pasar a otra activity es:


@Override
protected void onListItemClick(ListView l, View v, int position, long id) {
        // TODO Auto-generated method stub
        super.onListItemClick(l, v, position, id);
     
        String identificador = Long.toString(id);
        Intent editarPersona = new Intent(getApplicationContext(), EditPerson.class);
        editarPersona.putExtra("identificador", identificador);
        startActivity(editarPersona);
}
Vemos como estamos cogiendo el id del elemento seleccionado en la variable identificador, creado un intent del tipo EditPerson.java y mediante putExtra le añadimos este identificador al intent. Por último solamente tenemos que hacer el startActivity.
Lo que tenemos que hacer en el activity EditPerson.java es mostrado a continuación:

@Override
    public void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.editperson);
     
        Bundle extras = getIntent().getExtras();
        if (extras!=null)
        {
        String identificador = extras.getString("identificador");
        }
}

En el onCreate estamos introduciendo la línea Bundle extras=getIntent().getExtras la cual introduce en la variabke extras todo lo recibido. Ahora solamente nos falta extraerlas en el caso de que no esté vacío con un getString("mismo nombre que le dimos antes") y listo, ya hemos pasado el valor de una pantalla a otra.
       

LIBRO RECOMENDADO PARA APRENDER ANDROID

Uno de los libros fundamientales y que recomiendo para aprender Android y llegar a hacer aplicaciones profesionales es: Android 2 Application Developement de Reto Meier




1 comentario :

  1. Tengo un proyecto en el que estoy tratando de mandar unas variables a la Activity principal (category.LAUNCHER) desde otra Activity y lo he conseguido, pero cuando salgo de la aplicación y entro de nuevo los valores se han ido.
    el problema surge porque estoy usando como receptora a la Activity principal. Como hago para que mi aplicación se quede con esos valores?. Gracias por sus aportes!!

    ResponderEliminar