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