0

I am trying to pass two values (Tablayout title and Spinner item) at the same time from fragmentA to fragmentB using Bundle. But the getArguments() in fragmentB is returning null.

Thanks for any help.

Here is the code for my fragmentA

tabLayout.setOnTabSelectedListener(new TabLayout.OnTabSelectedListener() {
        @Override
        public void onTabSelected(TabLayout.Tab tab) {

            final int pos = tab.getPosition();

            spinner.setOnItemSelectedListener(new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> parent, View view, int position, long id) {

                    year = spinner.getItemAtPosition(position).toString();
                    month = String.valueOf(mPagerAdapter.getPageTitle(pos).toString());
                    //Toast.makeText(getActivity().getBaseContext(), month + " " + year,Toast.LENGTH_SHORT).show();


                    FragmentB f = new FragmentB();

                    if(month != null && year != null) {
                        final Bundle b = new Bundle();
                        b.putString("m", month);
                        b.putString("y", year);
                        f.setArguments(b);
                    }



                }


                @Override
                public void onNothingSelected(AdapterView<?> parent) {

                }
            });



        }

Below is the code for fragmentB

@Override
public void onCreate(Bundle savedInstanceState)
{
    super.onCreate(savedInstanceState);


    final Bundle bundle = getArguments();
    String month = "";
    String year = "";

    try
    {
        month = bundle.getString("m");
        year = bundle.getString("y");
        Toast.makeText(getActivity().getBaseContext(), month + " " + year, Toast.LENGTH_SHORT).show();
    }
    catch (final Exception e)
    {
        Toast.makeText(getActivity().getBaseContext(),"No data", Toast.LENGTH_SHORT).show();
    }

}
Banana
  • 1
  • 4

0 Answers0