Bienvenidos sean a este post, en el post anterior dejamos a nuestra app llamada Mis Lugares con dos fragmentos, en el de la izquierda tenemos el listado de nuestros lugares y el de la derecha deberia mostrar los datos del lugar pero hasta ahora aparecio vacio, en este post nos centraremos como lograr mostrar la informacion en este fragmento, primero abramos la aplicacion Mis Lugares con Android Studio, iremos a la clase SelectorFragment donde reemplazaremos el siguiente metodo:

Anuncios
    @Override
    public void onItemClick(AdapterView<?> arg0, View vista, int posicion,
                            long id){
        Intent intento = new Intent(getActivity(), VistaLugar.class);
        intento.putExtra("id", id);
        startActivity(intento);
    }

De la siguiente forma:

    @Override
    public void onItemClick(AdapterView<?> arg0, View vista, int posicion,
                            long id){
        ((MainActivity) getActivity()).muestraLugar(id);
    }

En este caso en lugar de mostrar una nueva actividad le diremos que utilice getActivity() de la clase MainActivity y llame a muestraLugar() pasando el id, no se preocupen porque pronto crearemos dicho metodo, nuestro siguiente paso sera modificar a MainActivity donde primero agregaremos esta variable:

private VistaLugarFragment fragmentVista;

Luego agregaremos el siguiente bloque en el metodo onCreate():

fragmentVista = (VistaLugarFragment) getSupportFragmentManager()
                    .findFragmentById(R.id.vista_lugar_fragment);

Nuestro siguiente modificacion sera agregar al metodo que hicimos referencia anteriormente:

Anuncios
    public void muestraLugar(long id){
        if (fragmentVista != null){
            fragmentVista.actualizarVistas(id);
        } else {
            Intent intento = new Intent(this, VistaLugar.class);
            intento.putExtra("id",id);
            startActivityForResult(intento,0);
        }
    }

En este caso recibira un argumento identificado como id, este chequea si fragmentVista es distinto de null, en caso de ser verdadero procede a llamar al metodo actualizarVistas() pasando el id, de lo contrario creara una nueva intencion y la ejecutara como una actividad, si probamos nuestra aplicacion deberemos tener una salida semejante al siguiente video

Si lograron lo mismo que se ve en el video Enhorabuena!!! Han logrado agregar una mejor interactividad entre los fragmentos.

Anuncios

En resumen, hoy hemos visto como crear una interaccion entre dos fragmentos, hemos visto como tener una forma alternativa en caso de no disponer de fragments, espero les haya sido util sigueme en Twitter o Facebook para recibir una notificacion cada vez que subo un nuevo post en este blog, nos vemos en el proximo post.

Tambien podes donar

Es para mantenimiento del sitio, gracias!

$1.00