vida utilizar tutorial trabajar studio interfaces fragments fragmentos example dinamicas desde con como ciclo activity abrir android android-fragments onclicklistener android-button

utilizar - interfaces dinamicas android



¿Cómo abro un nuevo fragmento de otro fragmento? (6)

Agregue el siguiente código en su función de escucha de clic

NextFragment nextFrag= new NextFragment(); getActivity().getSupportFragmentManager().beginTransaction() .replace(R.id.Layout_container, nextFrag,"findThisFragment") .addToBackStack(null) .commit();

Traté de hacer una navegación entre fragmentos. Tengo el NewFragment.java con el nuevo fragmento funcionando. Mi problema es:

¿Cómo hago que onClickListener ejecute NewFragment.java correctamente?

button.setOnClickListener(new OnClickListener() { @Override public void onClick(View v) { Intent i = new Intent(getActivity(), NewFragment.class); startActivity(i); }});

FYI: Esto es desde dentro de un fragmento (no sé si eso importa).


Este es un código más descripto del código de @ Narendra,

Primero necesitas una instancia del 2do fragmento. Entonces deberías tener objetos de FragmentManager y FragmentTransaction. El código completo es el siguiente,

Fragment2 fragment2=new Fragment2(); FragmentManager fragmentManager=getActivity().getFragmentManager(); FragmentTransaction fragmentTransaction=fragmentManager.beginTransaction(); fragmentTransaction.replace(R.id.content_main,fragment2,"tag"); fragmentTransaction.addToBackStack(null); fragmentTransaction.commit();

Espero que esto funcione A veces puede obtener getSupportFragmentManager () en lugar de getFragmentManager ().


Utilizar esta,

AppCompatActivity activity = (AppCompatActivity) view.getContext(); Fragment myFragment = new MyFragment(); activity.getSupportFragmentManager().beginTransaction().replace(R.id.fragment_container, myFragment).addToBackStack(null).commit();


debe crear una función dentro de la actividad para abrir un nuevo fragmento y pasar la referencia de actividad al fragmento y, en algún evento dentro del fragmento, llamar a esta función.


Fragment fr = new Fragment_class(); FragmentManager fm = getFragmentManager(); FragmentTransaction fragmentTransaction = fm.beginTransaction(); fragmentTransaction.add(R.id.viewpagerId, fr); fragmentTransaction.commit();

Solo para ser precisos, R.id.viewpagerId está R.id.viewpagerId en su diseño de clase actual, al llamar, el nuevo fragmento se infiltra automáticamente.


@Override public void onListItemClick(ListView l, View v, int pos, long id) { super.onListItemClick(l, v, pos, id); UserResult nextFrag= new UserResult(); this.getFragmentManager().beginTransaction() .replace(R.id.content_frame, nextFrag, null) .addToBackStack(null) .commit(); }