【问题标题】:Calling tab of a Activity from other Activity从其他 Activity 调用 Activity 的选项卡
【发布时间】:2016-12-12 20:13:51
【问题描述】:

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

现在如果我在其他活动中,如果我想从这个活动中转到 MainActivity 的第三个选项卡,如何实现这一点。

提前致谢。

【问题讨论】:

    标签: android android-viewpager android-tablayout


    【解决方案1】:

    执行以下操作。

    MainActivity类的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);
    

    希望这对你有用

    【讨论】:

      【解决方案2】:

      您可以使用某种值返回第一个活动,这表明您需要转到第三个选项卡 在 on create 中,您将检查该值是否在意图 getextra 如果是的话-去第三个 else - 定期继续

      【讨论】:

        【解决方案3】:

        您可以在创建活动之前 putExtra 并在第二个活动中获取它。

        【讨论】:

          【解决方案4】:

          您必须在进入 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();
                      }
                  });
          

          它会帮助你。

          【讨论】:

            猜你喜欢
            • 2015-10-08
            • 1970-01-01
            • 1970-01-01
            • 2019-02-08
            • 2017-06-14
            • 1970-01-01
            • 2016-05-26
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多