android - Android Studio 上如何在不点击选项卡的情况下移动到另一个选项卡?

标签 android tabs

我的主要 Activity 几乎是设置选项卡并在 ViewPager 中显示内容。我可以通过单击选项卡导航到另一个选项卡。

代码:

public class MainActivity extends AppCompatActivity {

    private static final String TAG = "MainActivity";

    private SectionsPageAdapter pageAdapter;
    private ViewPager mViewPager;


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

        pageAdapter = new SectionsPageAdapter(getSupportFragmentManager());

        // Set up the ViewPager with the sections adapter

        mViewPager = (ViewPager) findViewById(R.id.container);
        setupViewPager(mViewPager);

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


    }

    // Add fragments to SectionsPageAdapter and give titles
    private void setupViewPager(ViewPager viewPager) {
        SectionsPageAdapter adapter = new SectionsPageAdapter(getSupportFragmentManager());
        adapter.addFragment(new ProfileTab(), "Profile");
        adapter.addFragment(new GithubTab(), "Github Repos");
        adapter.addFragment(new FollowerTab(), "Followers");
        adapter.addFragment(new FollowingTab(), "Followings");
        viewPager.setAdapter(adapter);
    }


}

但是,当我尝试通过单击其中一个页面中的 TextView 导航到另一个选项卡时,会出现错误。到目前为止我尝试过的是,

public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {

        View view = inflater.inflate(R.layout.profile_tab, container, false);

        ... Code Hidden ...
        // numRepos is the TextView that I have

        numRepos.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {
                //Toast.makeText(getActivity().getApplicationContext(), "num repos", Toast.LENGTH_SHORT).show();
                viewPager.setCurrentItem(2);
            }
        });


        return view;

我实际上知道这是行不通的,因为该页面中的 viewPager 与 MainActivity.java 中的 ViewPager 不同。如何通过单击 numRepos TextView 导航到另一个选项卡?

最佳答案

在您的 fragment 中尝试此操作:

ViewPager mviewPager = (ViewPager) getActivity().findViewById(R.id.viewpager);

这个 id 将是您的 viewpager id,它在 Activity 布局中给出。

那就用这个吧。 mviewPager.setCurrentItem(2);

关于android - Android Studio 上如何在不点击选项卡的情况下移动到另一个选项卡?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46886569/

相关文章:

android - 使用 Canvas.drawText() 定位文本

android - 将android应用程序分成两个 'branches' ,免费和付费

java - Android TabHost 不工作。我没有做错任何事

silverlight - 如何在 VS 设计器中选择 Silverlight TabControl 上的选项卡

java.lang.NoClassDefFoundError : javax/xml/bind/JAXBException after updating to Android Studio 4. 2

java - 添加指向 AlertDialog 上按钮的链接,该按钮在应用程序启动时显示

R Shiny : How to add data tables to dynamically created tabs

javascript - 使用 md-tab (css) 的类似标签的浏览器

html - 选项卡上的问题

android - Branch.io 和即时应用程序