从其他 Activity 调用 Activity 的选项卡

Calling tab of a Activity from other Activity

我有一个 MainActivity 并且我正在使用 android.support.design.widget.TabLayout 作为带有 Viewpager 的 tabview。

现在,如果我在其他 activity 中,如果我想从这个 activity 转到 MainActivity 的第 3 个选项卡,如何实现。

提前致谢。

您可以 return 使用某种值进入第一个活动,这表明您需要转到第三个选项卡 在创建时,您将检查该值是否在意图 getextra 中 如果是-转到第三个 else-continue regulary

您可以在创建 activity 之前添加 Extra 并在第二个 activity 中获取它。

执行以下操作。

MainActivity class 在 onCreate 方法初始化 tabLayout 后写下面的代码

int index = getIntent().getIntExtra("SelectedIndex",0);
tabLayoutObject.getTabAt(index).select();

然后从你想重定向到的地方MainActivity写下

Intent intent = new Intent(this,MainActivity.class);
intent.putExtra("SelectedIndex",2) //what ever the index is
startActivity(intent);

希望这对你有用

您必须在转到 SecondActivity 时使用 startActivityForResult()。

当您使用 startActivityForResult 时,您可以使用 setResult() 在 firstActivity 中获得通知;

在 FirstActivity 中:

@Override
    protected void onActivityResult(int requestCode, int resultCode, Intent data) {
        super.onActivityResult(requestCode, resultCode, data);
        if(resultCode == RESULT_OK){
            if(requestCode == 0){
                if(data!=null && data.getExtras()!=null){
                    final int position = data.getIntExtra("key_position",-1);
                    if(position !=-1){
                        tabLayout.getTabAt(position).select();
                    }
                }
            }
        }
    }

在 SecondActivity 中:

button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View view) {
                final Intent intent = new Intent();
                intent.putExtra("key_position",3);
                setResult(RESULT_OK,intent);
                finish();
            }
        });

它会帮助你。