从活动返回片段

时间:2019-11-09 10:11:27

标签: java android android-fragments

  • 我有 MainActivityBottomNav包含3个片段A,B和C。

  • 从片段A进入​​活动A,从活动A进入活动B。

  • 现在我想通过在跳过活动A的同时按“返回”按钮,从活动B返回特定的片段A。

  • 在开始活动B之前,我已经在活动A中尝试过 Intent.FLAG_ACTIVITY_CLEAR_TASK,并且还明确地从活动B中启动了MainActivity的意图,但未给出结果我想要,当然这似乎并不是一种有效的方法。如何返回片段?

4 个答案:

答案 0 :(得分:0)

也许这不是理想的解决方案,但应该可以解决

活动B

@Override
public void onBackPressed() {   
   Intent i = new Intent(ActivityB.this, MainActivity.class);
   i.putExtra("cameFromActivityB", true);
   startActivity(i);
 }

在主要活动中

@Override
protected void onCreate(Bundle savedInstanceState) {
    Bundle extras = getIntent.getExtras();
    if(extras.getBoolean("cameFromActivityB", false))
    {
       loadFragmentA();
    }
}

答案 1 :(得分:0)

//在每个Activity的onCreate内://

getSupportActionBar().setTitle("name of the Activity here"); 
getSupportActionBar().setDisplayHomeAsUpEnable(true);

//然后转到//

中的清单文件

//在该右括号之前 设定您的活动顺序;例 (您有三个活动,主要活动,活动2,活动3)//

<activity android:name=".Activity2" 
android:parentActivityName=".MainActivity"></activity>

答案 2 :(得分:0)

您可以做的是,当您从ActivityA启动ActivityB时,只需通过finish()方法完成activityA。

Intent intent = new Intent(ActivityB.this,ActivityA.class);
startActivity(intent);
finish();

这样做,您将不会被重定向到ActivityA,当您从activityB中按“后退”按钮时,您将被直接重定向到主要活动。

答案 3 :(得分:0)

案例1

您需要在启动Intent之后完成活动A。

Intent intent = new Intent(ActivityB.this,ActivityA.class);
startActivity(intent);
finish(); 

案例2

如果您想在某个时候回到活动A,那么您需要将一些标志从活动B传递到活动A。然后在活动A的开头运行此代码。

if(extras.getBoolean("NameOfFlag", false))
    {
       ActivityA.finish();
    }

使用此代码发送标志。

Intent i = new Intent(ActivityB.this, ActivityA.class);
i.putExtra("NameOfFlag", true);
startActivity(i);
finish();

当您不需要回来时,请记住参加finish()活动。在这种情况下,ActivityB。