1

I want to go from FragmentB back to FragmentA. Can anyone please show me how to do that? The back button just closes my application. I want to return to the previous fragment instead. Here are my codes:

FragA

public class FragA extends Fragment {

    final String[] items = new String[]{"F1", "F2", "F3"
    };

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.layout, container, false);

        ListView list = (ListView) view.findViewById(R.id.fir);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, items);
        list.setAdapter(adapter);

        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                    long arg3) {

                Fragment myFragment = null;
                switch (arg2){
                    case 0:
                        myFragment = new FragA();
                        break;
                    case 1:
                        myFragment = new FragB();
                        break;
                    case 2:
                        myFragment = new FragC();
                        break;

                }
                // update the main content by replacing fragments
                FragmentManager fragmentManager = getActivity().getSupportFragmentManager();

                fragmentManager.beginTransaction()
                        .replace(R.id.container2, myFragment)

                        .commit();
                fragmentManager.popBackStackImmediate();
            }

        });
        return view;
    }




}

FragB

public class First_frag extends Fragment {

    final String[] items = new String[]{"F1", "F2", "F3", "F4","F5"
    };

    @Override
    public View onCreateView(LayoutInflater inflater, ViewGroup container,
                             Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.lay, container, false);

        ListView list = (ListView) view.findViewById(R.id.fir);
        ArrayAdapter<String> adapter = new ArrayAdapter<String>(getActivity(), android.R.layout.simple_list_item_1, items);
        list.setAdapter(adapter);

        list.setOnItemClickListener(new AdapterView.OnItemClickListener() {

            @Override
            public void onItemClick(AdapterView<?> arg0, View arg1, int arg2,
                                    long arg3) {

                Fragment myFragment = null;
                switch (arg2) {
                    case 0:
                        myFragment = new FragA();
                        break;
                    case 1:
                        myFragment = new FragB();
                        break;
                    case 2:
                        myFragment = new FragC();
                        break;
                    case 3:
                        myFragment = new FragD();
                        break;
                    case 4:
                        myFragment = new FragE();

                        break;

                }
                // update the main content by replacing fragments
                FragmentManager fragmentManager = getActivity().getSupportFragmentManager();

                fragmentManager.beginTransaction()

                        .replace(R.id.container3, myFragment)

                        .commit();


            }

        });
        return view;
    }



}

Thanks for any help in advance. I apologize for any possible mistakes I've made here. I'm new to programming in Android.

GabEA
  • 19
  • 3

1 Answers1

0

simply in your Activity override backPressed() method:

     @Override
     public void onBackPressed() {
       if (getSupportFragmentManager().getBackStackEntryCount() > 0) {
           getSupportFragmentManager().popBackStack();
       }
       super.onBackPressed();
     }

and remove line in FragmentA class:

   fragmentManager.popBackStackImmediate();
s_klepcha
  • 379
  • 3
  • 12