I've been struggling with this error since the last week. Here it is:
public class MainActivity extends FragmentActivity implements ActionBar.TabListener {
    AppSectionsPagerAdapter mAppSectionsPagerAdapter;
    ViewPager mViewPager;
    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        mAppSectionsPagerAdapter = new AppSectionsPagerAdapter(getSupportFragmentManager(), getApplicationContext());
        mViewPager = (ViewPager) findViewById(R.id.pager);
        mViewPager.setAdapter(mAppSectionsPagerAdapter);
        ...
    }
    @Override
    public boolean onOptionsItemSelected(MenuItem item) {
        // Handle item selection
        switch (item.getItemId()) {
        case R.id.refresh:
            mAppSectionsPagerAdapter.onRefresh();
            return true;
        ...
    }
public class AppSectionsPagerAdapter extends FragmentPagerAdapter {
    private ArrayList<Fragment> fragmentList;
    private MainSectionFragment f1, f2;
    private SelectedSectionFragment f3;
    public AppSectionsPagerAdapter(FragmentManager fm, Context c) {
        f3 = new SelectedSectionFragment();
        f2 = new MainSectionFragment();
        f1 = new MainSectionFragment();
        fragmentList = new ArrayList<Fragment>();
        fragmentList.add(f1);
        fragmentList.add(f2);
        fragmentList.add(f3);
        ...
    }
    public void onRefresh(){
        MainSectionFragment fragment = (MainSectionFragment)fragmentList.get(0);
        fragment.fetchList();
    }
    ...
}
public class MainSectionFragment extends Fragment implements CallbackListener {
    public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        //some initialization
        c = getActivity().getApplicationContext(); // tested and it gets initialized
        System.out.println(""+hashCode());
        ...
    }
    void fetchList() {
        System.out.println(""+hashCode());
        android.support.v4.app.FragmentManager manager = getActivity().getSupportFragmentManager();
        ...
    }
}

I navigate from ActivityMain and it dies. When I get back the list is scrollable vertically and horizontally. If I click refresh button NullPointerException arises. I've debugged the program. OnCreateView() is called when I return from SettingsActivity, but when I click refresh button, every field of MainSectionFragment becomes null.
Printed hashcodes before exception:
05-25 01:54:37.190: I/System.out(5982): 1091848056 //onCreateView()
05-25 01:54:42.680: I/System.out(5982): 1091574888 //fetchList()
Can't understand why are these objects different.
Let me know if my question is not clear.
UPDATE 1
I have checked 'Don't keep activities' option in dev tools. I have verified that MainActivitys onCreate is called after going back from SettingsActivity
UPDATE 2
Going to SettingsActivity detaches the fragments. Returning from SettingsActivity attaches the fragments again.
 
     
     
     
    