【问题标题】:Activity - Fragment onBackPressed()活动 - 片段 onBackPressed()
【发布时间】:2016-12-08 15:57:52
【问题描述】:

我在理解 Activity 和 Fragment 之间的区别时遇到了一些问题。

我做了一个名为“PublicarActivity”的活动和一个名为“PublicarFragment”的片段。

它们具有完全相同的代码(在作为片段和作为活动工作时存在一些差异),所以这不是问题。

我的问题是我真的不知道如何使用“onBackPressed”。我知道在调用片段之前,你应该将它添加到堆栈中,但现在我想做一些更复杂的事情。

这是我 Activity 的 onBackPressed 的代码:

@Override
public void onBackPressed() {
    if(layout_activado){
        verificable.toggle();
        verificar_layout.setVisibility(View.INVISIBLE);
        layout_activado = false;
        pulsado = false;        }
    else{
        Intent intent_cancelar = new Intent(PublicarActivity.this, Principal_Activity.class);
        startActivity(intent_cancelar);
    }
}

我怎样才能从我的片段中做到这一点?

【问题讨论】:

  • 如何与我的活动共享片段的变量?我的意思是,我所理解的是,我应该在我的活动上编写 onBackPressed() 代码,以便从我的片段中使用它。我说的对吗?
  • Fragment 类没有 onBackPressed 方法。 Activity 包含 Fragment,它响应按下后退按钮,是的。我不确定您指的是哪些变量。
  • 它基本上是我在 Fragment 中创建的一些布尔值。如果我在我的活动中创建相同的,我会工作吗?
  • 这取决于你需要这些布尔值做什么。您始终可以使用 ((PublicarActivity) getActivity()).getYourBoolean() 从 Fragment 中获取值,例如

标签: java android android-fragments android-activity onbackpressed


【解决方案1】:

您的问题中有两件事需要解决才能得到答案。

首先是ActivityFragment 之间的混淆。你可能在Android中遇到过这样的说法——“Activity代表单屏”。因此,在您的应用程序中拥有Activity 将使您的用户与各种视图(例如按钮、列表等)进行交互。所以现在,让我们考虑一个实例,当您想在您的Activity 中添加这样一个视图时,它应该包含一些状态生命周期(就像您可以在片段中列出列表并单击项目应该会引导您在同一视图中查看详细视图)这样您就可以在主要活动中拥有迷你活动,而所有其他组件保持在相同的位置。因此,提供诸如迷你活动之类的功能,您的Fragment 将有一些生命周期方法,这些方法将在片段生命周期中调用。因此,只要您觉得在主 Activity 中需要一些子 Activity 或用于任何其他用途,您就可以使用 Fragment。你可以用Fragment 覆盖整个Activity,就像我们想在我们的应用中使用Navigation-Drawer 时所做的那样。

既然您已经清楚了FragmentActivity(我希望如此),您可以参考名为 cricket 的人提供的链接,即this

【讨论】:

    猜你喜欢
    • 2017-09-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-05-21
    • 2021-11-23
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多