FragmentPagerAdapter con ViewPager y dos fragmentos. Ir al primero del segundo y actualizar el primer texto.

No estoy familiarizado conFragmentPagerAdapter, por lo que esta será una de esas preguntas en las que nosotros (usted) lea la descripción de manera crítica.

Estructura: tengo unFragmentPagerAdapter (código abajo), que contendrá dos fragmentos a la vez. El primero muestra extractos de libros, y el segundo una lista de títulos de libros.

Gol: Quiero lograr lo que se describe en el título: el usuario puede navegar al segundo fragmento en el buscapersonas, hacer clic en un título, y luego quiero mover al usuario de nuevo al primer fragmento y decirle al primer fragmento que actualice el texto. . El primer fragmento tiene unatriggerRefresh método para eso

Código: Creo que mi problema pasa por el camino.FragmentPagerAdapter reutiliza / crea los Fragmentos (que no entiendo). Esta es mi clase:

<code>static class MyFragmentPagerAdapter extends FragmentPagerAdapter {

    public MyFragmentPagerAdapter(FragmentManager fm) {
        super(fm);
    }

    @Override
    public int getCount() {
        return NUM_ITEMS;
    }

    @Override
    public Fragment getItem(int position) {
        switch(position) {
        case 0:
            return new ExcerptsFragment();
        case 1:
            return new BookListFragment();
        default:
            throw new IllegalArgumentException("not this many fragments: " + position);
        }
    }
}
</code>

Así es como creé a los miembros relevantes:

<code>ViewPager mViewPager = (ViewPager) findViewById(R.id.pager);
MyFragmentPagerAdapter mFragmentPagerAdapter = new MyFragmentPagerAdapter(getSupportFragmentManager());
mViewPager.setAdapter(mFragmentPagerAdapter);
</code>

Y esto es lo que he intentado en otra parte de mi actividad, cuando recibo la devolución de llamada de los títulos de libro Fragmento con el título seleccionado:

<code>mViewPager.setCurrentItem(0); // back to excerpts screen page. It's OK.
// Here's the problem! How to identify the fragment 0 
// to ExcerptsFragment and call its triggerRefresh()?!?
</code>

Serie de problemas:

Llamando al adaptadorgetView() no funcionará porque devolverá una nueva instancia deExcerptsFragment, que no es el que se adjunta actualmente (como se esperaba, lanza la excepción).

He visto a muchas personas aquí (ejemplo) simplemente almacenando fragmentos en elgetView(). ¿Está bien? Porque al mirar los ejemplos oficiales, me parece un antipatrón (anule la referencia automática sosteniendo los elementos). Y esa es también la opinión.aquí yaquí (y me queda bien).

¿Alguna sugerencia? No me sorprendería si no entiendo todo esto un poco ...

Respuestas a la pregunta(3)

Su respuesta a la pregunta