【问题标题】:How to switch tab position or replace tab position in OnClickListener如何在 OnClickListener 中切换选项卡位置或替换选项卡位置
【发布时间】:2018-10-02 03:25:56
【问题描述】:

我正在使用 ViewPager 和 TabLayout 来显示可以通过选择选项卡轻松切换的片段。 我有 5 个标签,其中包含片段一、二、三、四和五。

在片段一中,我有一个按钮。如何通过单击该按钮而不是选项卡来切换到其他选项卡,例如选项卡 4。

这里是主要活动

        ViewPager viewPager = (ViewPager) findViewById(R.id.pager);
        ViewPagerAdapter adapter = new ViewPagerAdapter(getSupportFragmentManager());

        adapter.addFragment(new Home(), "Home");
        adapter.addFragment(new speed(), "Quick Dial");
        adapter.addFragment(new hospital(), "Hospital");
        adapter.addFragment(new ambulance(), "Ambulance");
        adapter.addFragment(new funeral(), "Funeral");

        viewPager.setAdapter(adapter);

        TabLayout tabLayout = (TabLayout) findViewById(R.id.tabs);
        tabLayout.setupWithViewPager(viewPager);

    }

    }
    class ViewPagerAdapter extends FragmentPagerAdapter {
        private final List<Fragment> mFragmentList = new ArrayList<>();
        private final List<String> mFragmentTitleList = new ArrayList<>();

        public ViewPagerAdapter(FragmentManager manager) {
            super(manager);
        }

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

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

        public void addFragment(Fragment fragment, String title) {
            mFragmentList.add(fragment);
            mFragmentTitleList.add(title);
        }

        @Override
        public CharSequence getPageTitle(int position) {
            return mFragmentTitleList.get(position);
        }
    }

片段一包含

        @Override
        public void onClick(View v) {
            switch (getAdapterPosition()) {
                case 0:

                //Switch to tab position two
                case 1:

                //Switch to tab position three
                case 2:

               //Switch to tab position four

            }
        }
    }
}

提前致谢。

【问题讨论】:

    标签: java android android-tablayout


    【解决方案1】:

    你可以在onClick(View v)中写代码

    viewPager.setCurrentItem(index);

    Index 是要显示的片段编号。 尝试这个。我希望你的问题能得到解决。

    【讨论】:

      【解决方案2】:

      您可以在您的活动中注册BroadcastReciever,并在单击按钮后立即从您的第一个片段向活动发送广播。

      BroadcastReciever 内更改ViewPager 索引,

      viewPager.setCurrentItem(index);

      此外,您还可以通过intent传递数据来发送要切换到的索引。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-08-28
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多