Приложение закрывается на viewPager.setAdapter (адаптер) в android 5.1 (просто android 5.1) - PullRequest
0 голосов
/ 25 марта 2020

Я использую viewPager в своем приложении, чтобы он работал правильно во всех android версиях, но не работает в android 5.1. Когда я пытаюсь закрыть это приложение без каких-либо исключений или ошибок. Я пытаюсь проверить большую часть android, чтобы работа в android 4.4.2 и более поздних версиях, но в android 5.1 не работала, и приложение закрывалось без ошибок. есть ли у вас решение для этого? Я приложил свой код ниже.

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main2);

    ViewPager viewPager = (ViewPager) findViewById(R.id.view_pager);
    MyPagerAdapter pagerAdapter = new MyPagerAdapter(getSupportFragmentManager());
    if (viewPager != null)
        viewPager.setAdapter(pagerAdapter);

    mTabLayout = (TabLayout) findViewById(R.id.tab_layout);
    if (mTabLayout != null) {
        mTabLayout.setupWithViewPager(viewPager);

        for (int i = 0; i < mTabLayout.getTabCount(); i++) {
            TabLayout.Tab tab = mTabLayout.getTabAt(i);
            if (tab != null)
                tab.setCustomView(pagerAdapter.getTabView(i));
        }

        mTabLayout.getTabAt(0).getCustomView().setSelected(true);
    }

}


private class MyPagerAdapter extends FragmentPagerAdapter {

    public final int PAGE_COUNT = 3;

    private final String[] mTabsTitle = {"Scan", "History","Setting"};

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

    public View getTabView(int position) {
        View view = LayoutInflater.from(MainActivity2.this).inflate(R.layout.toolbar, null);
        ImageView icon = (ImageView) view.findViewById(R.id.icon);
        icon.setImageResource(mTabsIcons[position]);
        return view;
    }

    @Override
    public Fragment getItem(int pos) {
        switch (pos) {

            case 0:
                return FirstFragment.newInstance(1);
            case 1:
                return SecondFragment.newInstance(2);
            case 2:
                return ThirdFragment.newInstance(3);
        }
        return null;
    }

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

    @Override
    public CharSequence getPageTitle(int position) {
        return mTabsTitle[position];
    }

}
...