Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/301.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android ViewPager加载不同的片段_Android_Android Viewpager - Fatal编程技术网

Android ViewPager加载不同的片段

Android ViewPager加载不同的片段,android,android-viewpager,Android,Android Viewpager,我已经创建了我的PagerAdapter: public class PagerAdapter extends FragmentPagerAdapter { private final List<Fragment> mFragmentList = new ArrayList<>(); public PagerAdapter(FragmentManager fm) { super(fm); } @Override

我已经创建了我的PagerAdapter:

public class PagerAdapter extends FragmentPagerAdapter {
    private final List<Fragment> mFragmentList = new ArrayList<>();

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

    @Override
    public Fragment getItem(int position) {
        return mFragmentList.get(position);
    }

    @Override
    public int getCount() {
        return mFragmentList.size();
    }

    public void addFragment(Fragment fragment) {
        mFragmentList.add(fragment);
    }
}

当我试图选择这3个片段中的一个时,它们没有正确显示。看起来他们是在互相混。可能“viewPager.setCurrentItem(0);”工作不正常?

因此定位错误或
viewPager中的内容
?定位正常,内容错误。请尝试移动
setupViewPager(viewPager)向上并将其放置在
设置内容视图(R.layout.activity\u main\u bottom)之后尝试在空对象引用上调用虚拟方法“void android.support.v4.view.ViewPager.setAdapter(android.support.v4.view.PagerAdapter)”。很高兴您找到了解决方案:)祝您好运!
public class chargerOperationsList extends Fragment {
    ListView listview;
    List<ChargingOperationGet> list2;
    ProgressBar progressBar;

    @Nullable
    @Override
    public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {
        View myView = inflater.inflate(R.layout.activity_charger_operations_list, null);

        listview = (ListView) myView.findViewById(R.id.listView);
        progressBar = (ProgressBar) myView.findViewById(R.id.progressBar2);
        progressBar.setVisibility(View.VISIBLE);

        asyncGet asyncget = new asyncGet(this);
        asyncget.execute();


        return myView;
    }

    public void setListOnMainClass(List<ChargingOperationGet> list2)
    {
        this.list2=list2;
        CustomListAdapter customListAdapter = new CustomListAdapter(getActivity(), R.layout.customlistlayout, list2);
        listview.setAdapter(customListAdapter);
    }


    public void setProgressBarInvisible()
    {
        progressBar.setVisibility(View.INVISIBLE);
    }
}
public class MainBottom extends AppCompatActivity {

SecondFragment secondFragment;
Connect connectFragment;
chargerOperationsList chargerOperationsList;

ViewPager viewPager;
MenuItem prevMenuItem;
BottomNavigationView navigation;

    private BottomNavigationView.OnNavigationItemSelectedListener mOnNavigationItemSelectedListener
            = new BottomNavigationView.OnNavigationItemSelectedListener() {

        @Override
        public boolean onNavigationItemSelected(@NonNull MenuItem item) {
            switch (item.getItemId()) {
                case R.id.navigation_home:
                   viewPager.setCurrentItem(0);
                   break;
                case R.id.navigation_dashboard:
                    viewPager.setCurrentItem(1);
                    break;
                case R.id.navigation_notifications:
                    if(!BluetoothAdapter.getDefaultAdapter().isEnabled()) {
                        Intent enableBtIntent = new Intent(BluetoothAdapter.ACTION_REQUEST_ENABLE);
                        startActivityForResult(enableBtIntent , 0);
                    }

                    if(BluetoothAdapter.getDefaultAdapter().isEnabled()) {
                        viewPager.setCurrentItem(2);
                    }

                    break;
            }
            return false;
        }
    };


    private void setupViewPager(ViewPager viewPager)
    {
        PagerAdapter adapter = new PagerAdapter(getSupportFragmentManager());
        secondFragment = new SecondFragment();
        chargerOperationsList = new chargerOperationsList();
        connectFragment = new Connect();
        adapter.addFragment(secondFragment);
        adapter.addFragment(chargerOperationsList);
        adapter.addFragment(connectFragment);
        viewPager.setAdapter(adapter);
    }




    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main_bottom);

       navigation = (BottomNavigationView) findViewById(R.id.navigation);
        navigation.setOnNavigationItemSelectedListener(mOnNavigationItemSelectedListener);

        viewPager = (ViewPager) findViewById(R.id.viewpager);

        viewPager.addOnPageChangeListener(new ViewPager.OnPageChangeListener() {
            @Override
            public void onPageScrolled(int position, float positionOffset, int positionOffsetPixels) {

            }

            @Override
            public void onPageSelected(int position) {
                if (prevMenuItem != null) {
                    prevMenuItem.setChecked(false);
                }
                else
                {
                    navigation.getMenu().getItem(0).setChecked(false);
                }
                Log.d("page", "onPageSelected: "+position);
                navigation.getMenu().getItem(position).setChecked(true);
                prevMenuItem = navigation.getMenu().getItem(position);

            }

            @Override
            public void onPageScrollStateChanged(int state) {

            }
        });

        setupViewPager(viewPager);
     //   loadFragment(new SecondFragment());
    }


    @Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if (resultCode == RESULT_OK) {
           // viewPager.setCurrentItem(2);
        }
        if (resultCode == RESULT_CANCELED) {
            Toast.makeText(getApplicationContext(), "Cannot be done", Toast.LENGTH_SHORT).show();
        }
    }
}