在android中的fragmentadapter中吐司

时间:2018-04-04 21:49:00

标签: java android android-fragments android-toast

我有这个问题我不能在片段适配器中干杯我试过getActivity并且它没有提出任何建议为什么?

public class SamplePagerAdapter extends FragmentPagerAdapter {

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

        @Override
        public Fragment getItem(int position) {
            /** Show a Fragment based on the position of the current screen */
            if (position == 0) {
                return new SampleFragment();}
            if (position == 1) {
                    return new SampleFragment1q();
            } else
                return new SampleFragmentTwo();
            Toast.makeText(TSlide.this,  "end of lesson" , Toast.LENGTH_LONG).show();
        }

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

1 个答案:

答案 0 :(得分:0)

首先,您可以接收一个Context作为参数,该参数可以发布Toasts。

但是,在getItem(int)中进行烘烤会有一个很大的问题,因为它可以被实例化。在显示之前,你可能会在你想要的那个之前看到你的吐司一个屏幕。此外,如果适配器没有销毁该项目,则不会再次调用此方法。

更好的解决方案是在ViewPager中添加OnPageChangedListener并依赖onPageSelected上的位置来显示当前可见页面的Toast。