Organizational Research By

Surprising Reserch Topic

Experts Most Trusted Topic


how to handle asynctasks in actionbaractivity fragments when viewpager is used using -'android,android-asynctask,android-actionbar-compat,android-actionbaractivity,quora'


how to handle asynctasks in actionbaractivity fragments when viewpager is used  using -'android,android-asynctask,android-actionbar-compat,android-actionbaractivity,quora'

I'm using ActionBarActivity to create 5 tabs. I have used ViewPager to swipe between the 5 tabs using SectionsPagerAdapter which extends FragmentPagerAdapter. Each tab has a fragment with an asynctask called in oncreateview method. When I'm in one fragment, asynctask in other fragment is being called.  

I tried using toast messages in oncreateview method is each fragment instead of asynctask. But wrong toast messages are being fired in wrong fragment.   

Oncreate method code:

        mSectionsPagerAdapter = new SectionsPagerAdapter(getSupportFragmentManager());


        mViewPager = (ViewPager) findViewById(R.id.pager_exp);
        mViewPager.setAdapter(mSectionsPagerAdapter);


        mViewPager.setOnPageChangeListener(new ViewPager.SimpleOnPageChangeListener() {
                    @Override
                    public void onPageSelected(int position)
                    {
                        actionBar.setSelectedNavigationItem(position);
                        actionBar.setTitle(getHomePageTitle(position));
                    }
                });


        for (int i = 0; i < mSectionsPagerAdapter.getCount(); i++)
        {
            // Create a tab with text corresponding to the page title defined by
            // the adapter. Also specify this Activity object, which implements
            // the TabListener interface, as the callback (listener) for when
            // this tab is selected.
            actionBar.addTab(actionBar.newTab()
                    .setIcon(getPagedrawable(i))
                    .setTabListener(this));

        }


// Adapter class code:

public class SectionsPagerAdapter extends FragmentPagerAdapter {

    public SectionsPagerAdapter(FragmentManager fm)
    {
        super(fm);
    }

    @Override
    public Fragment getItem(int position) {


    switch (position)
    {
        case 0:
            Fragment1 f1 = new Fragment1();
            return f1;

        case 1:
            Fragment2 f2 = new Fragment2();
            return f2;

        case 2:
            Fragment3 f3 = new Fragment3();  
            return f3;

        case 3:
            Fragment4 f4 = new Fragment4();
            return f4;


        case 4:
            Fragment5 f5 = new Fragment5();
            return f5;

        }

        return null;

    }

    @Override
    public int getCount() {
        // Show 5 total pages.
        return 5;  
    }


}


Fragemnt class code :

public class F1 extends Fragment
{
@Override
public void onCreate(Bundle savedInstanceState)  
{
    super.onCreate(savedInstanceState);

}

 @SuppressLint("NewApi")
@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container,Bundle savedInstanceState)
{
    View view       = inflater.inflate(R.layout.f1,container, false);

     Toast.makeText(getActivity(), "F1", Toast.LENGTH_SHORT).show();
    return view;  
}   
}

    

asked Sep 7, 2015 by rajesh
0 votes
10 views



Related Hot Questions



Government Jobs Opening


...