Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/188.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:startActivity,通过片段进入另一个活动_Android_Android Fragments_Android Viewpager_Android Tablayout - Fatal编程技术网

Android:startActivity,通过片段进入另一个活动

Android:startActivity,通过片段进入另一个活动,android,android-fragments,android-viewpager,android-tablayout,Android,Android Fragments,Android Viewpager,Android Tablayout,假设我有一个活动A,点击一个按钮就会开始活动B: public void onClick(View v) { Intent intent = new Intent(A.this, B.class); startActivity(intent); finish(); 现在,活动B是一个具有表格布局的活动,单击选项卡将更改该活动的viewpager中的页面。viewpager上的每个页面都显示一个片段 活动B中

假设我有一个活动A,点击一个按钮就会开始活动B:

        public void onClick(View v) {
            Intent intent = new Intent(A.this, B.class);
            startActivity(intent);
            finish();
现在,活动B是一个具有表格布局的活动,单击选项卡将更改该活动的viewpager中的页面。viewpager上的每个页面都显示一个片段

活动B中有3个选项卡。我通过转到第3个选项卡并单击其中的按钮来启动活动A

当我点击活动A上的按钮时,它允许我返回到活动B,但它直接进入第一个选项卡

当它从活动A返回时,我如何让它转到第三个选项卡?

我想出来了

如果我只是调用活动A中的finish(),而没有使用从A移动到B的意图,那么我将返回到活动B中的同一选项卡中。

我发现了这一点


如果我只是在活动A中调用finish(),而没有使用从A移动到B的意图,那么我会在同一个选项卡中返回到活动B。

当您第二次从启动
活动B
时,您会像这样转到第三个选项卡启动活动

 startActivity(new Intent(context, ActivityB.class).putExtra("go_to", 3));
在初始化
ViewPager
FragmentPagerAdapter
后,在
ActivityB
中创建
方法

Bundle bundle = getIntent().getExtras();
        if (bundle != null) {
            int position = bundle.getInt("go_to");
            if (position != -1) {
                viewpager.setCurrentItem(position, false);
            }
        }

当您第二次从开始活动b
时,这将进入第三个选项卡,您要进入第三个选项卡开始活动,如下所示

 startActivity(new Intent(context, ActivityB.class).putExtra("go_to", 3));
在初始化
ViewPager
FragmentPagerAdapter
后,在
ActivityB
中创建
方法

Bundle bundle = getIntent().getExtras();
        if (bundle != null) {
            int position = bundle.getInt("go_to");
            if (position != -1) {
                viewpager.setCurrentItem(position, false);
            }
        }

这将进入第三个选项卡

您可以通过intent.putExtras()在整个intent中传递最后一个选项卡的编号,然后在活动B中使用viewPager.setCurrentItem(numTab);您可以使用intent.putExtras()在intent中传递最后一个选项卡的编号,然后在活动B中使用viewPager.setCurrentItem(numTab);