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();
}