【问题标题】:Coming back to fragment from other activity?回到其他活动的片段?
【发布时间】:2016-05-02 20:32:55
【问题描述】:

我有 3 个活动 A1、A2 和 A3。

第一个活动(A1)中有 3 个片段(fA、fB 和 fC)。从片段 "fB" 我要去我的 A2 活动,从 A2 我要去 A3。

现在从 A3 活动开始,我想在按钮按下时返回片段 fB。 我可以回到A1,但不能回到fb。是否有可能回到fb?如果可以,那么如何?

              public void onClick(View v) {

               Intent intent = new Intent(A3.this,  A1.class);
             // Intent intent = new Intent(A3.this,  fB.class);
              startActivity(intent);

错误 android.content.ActivityNotFoundException:找不到明确的活动类 它是一个片段,所以我不能在清单中声明它。

【问题讨论】:

  • 片段在活动中。您的片段 B 在活动 A 中。您应该回到活动 A,它会在那里。我认为您的问题出在其他方面。
  • 你如何完成从片段打开的两个活动
  • 你什么都不用做。如果您按下后退按钮或finish 活动,它应该保留在 fB 中。除非您在清单中放置任何像 CLEAR_TOP 这样的标志
  • 是的,我是说我可以回到片段活动,但不能回到特定片段。所以不可能从另一个活动回到特定片段? @AlexanderKulyakhtin
  • 是的,在后面按我可以从 A3activity 访问 fb 片段,但我必须按 2 次@Clairvoyant

标签: android fragment


【解决方案1】:

你可以通过 Intent 传递一个布尔值。

intent.putExtra("isFromActivity3", true);

然后在Activity onCreate()处获取布尔值,

getIntent().getBooleanExtra("isFromActivity3", false);

如果布尔值为true,则将fragmentB添加到Activity1。

更新:

我认为,下面的代码就足够了,

来自 Activity3,

this.finish();
activity2.finish();

这会将您带到 Activity1 中的 FragmentB。

【讨论】:

  • 你能澄清一点@Dinesh Bob
  • Fragment 不能在没有 Activity 的情况下存在。所以要从 Activity3 回到 FragmentB,你必须回到 Activity1 并将 FragmentB 添加到 Activity1。
  • 我更新了答案。将 Activity2 实例保存在 Activity3 中。然后从 Activity3 和 Activity2 调用 finish()。如果你创建新的 Intent 去 FragmentB,这将创建一个新的 FragmentB,而不是带你回到同一个 FragmentB。
  • 这样做它可以工作,但它会显示应用程序已停止并按下确定按钮开始工作@Dinesh Bob
  • 它不工作。消息“应用程序已停止”意味着应用程序中存在一些运行时错误并且应用程序已崩溃。你能发布错误日志吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-12-22
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-06-22
相关资源
最近更新 更多