我有 MainActivity
,BottomNav
包含3个片段A,B和C。
从片段A进入活动A,从活动A进入活动B。
现在我想通过在跳过活动A的同时按“返回”按钮,从活动B返回特定的片段A。
在开始活动B之前,我已经在活动A中尝试过 Intent.FLAG_ACTIVITY_CLEAR_TASK
,并且还明确地从活动B中启动了MainActivity
的意图,但未给出结果我想要,当然这似乎并不是一种有效的方法。如何返回片段?
答案 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。