getSupportFragmentManager().findFragmentByTag

getSupportFragmentManager().findFragmentByTag

首先,我使用的是 FragmentPagerAdapter,我曾经为此获取当前的 viewpager,但由于我有两个实现 viewpager 的片段,它与其他片段发生冲突,然后我切换到 FragmentStatePagerAdapter,它解决了冲突,但是当我尝试获取当前的viewpager 它 returns 我 null

getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.pager + ":" + viewPager.getCurrentItem())

    SalesReport extends Fragment
      final ViewPager viewPager = (ViewPager) viewGroup.findViewById(R.id.pager);

            TabsPagerAdapter adapter = new TabsPagerAdapter(myContext.getSupportFragmentManager());
            viewPager.setAdapter(adapter);
            TabLayout tabLayout = (TabLayout) viewGroup.findViewById(R.id.sliding_tabs);
            tabLayout.setupWithViewPager(viewPager);
        TextView quantity = (TextView) viewGroup.findViewById(R.id.quantity);
quantity.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                quantityBoolean = !quantityBoolean;
                SalesReportList page = (SalesReportList) myContext.getSupportFragmentManager().findFragmentByTag("android:switcher:" + R.id.pager + ":" + viewPager.getCurrentItem());
                ListView listView = (ListView) page.getView().findViewById(R.id.saleslistview);
                SalesReportItemAdapter adapter = (SalesReportItemAdapter) listView.getAdapter();
                adapter.sortquantiy(quantityBoolean);
            }
        });

    TabsPagerAdapter extends FragmentStatePagerAdapter{
     @Override
        public Fragment getItem(int position) {

            return  new SalesReportList().newInstance(position);
        }
    }

    class SalesReportList extends Fragment
     ViewGroup viewGroup = (ViewGroup) inflater.inflate(R.layout.fragment_sales_report_list, container, false);
            ListView listView = (ListView) viewGroup.findViewById(R.id.saleslistview);
            SalesReportItemAdapter listItemAdapter = new SalesReportItemAdapter(this, productType);
            listView.setAdapter(listItemAdapter);


    class SalesReportItemAdapter extends BaseAdapter 

        Fragment context;
        ProductType productType;
        List<Sales> salesList;

        public SalesReportItemAdapter(Fragment salesReportList, ProductType productType) {
            context = salesReportList;
            this.productType = productType;
            salesList = Myenum.INSTANCE.getSalesList(productType);

        }

returns 空与 FragmentStatePagerAdapter

public class TabsPagerAdapter extends FragmentStatePagerAdapter {

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

    private final SparseArray<SalesReportList> mPageReferences = new SparseArray<SalesReportList>();


    @Override
    public CharSequence getPageTitle(int position) {
        String title = null;
        switch (position) {
            case 0:
                title = "Mobile";
                break;
            case 1:
                title = "Accessory";
                break;

        }
        return title;
    }

    @Override
    public Fragment getItem(int position) {


        SalesReportList myFragment = SalesReportList.newInstance(position);
        mPageReferences.put(position, myFragment);
        // return  new SalesReportList().newInstance(position);
        return myFragment;
    }

    @Override
    public void destroyItem(ViewGroup container, int position, Object object) {
        super.destroyItem(container, position, object);
        mPageReferences.remove(position);
    }


    public SalesReportList getFragment(int key) {
        return mPageReferences.get(key);
    }

    @Override
    public int getCount() {
        return 2;
    }
}