【问题标题】:Simple android app, what structure should I use?简单的android应用程序,我应该使用什么结构?
【发布时间】:2014-03-23 06:10:47
【问题描述】:

我已经阅读了不同的布局,但仍然无法理解如何构建我的简单应用程序。

我想要的只是一个带有图像和一组按钮的屏幕。 当您按下按钮时,另一个屏幕会从侧面滑入。 第二个屏幕有一个图像和它自己的一组按钮。

当然,我可以使用两个单独的活动。但我希望两个屏幕都可以访问我声明的一些变量。在阅读了活动之后,似乎使用父子活动不是正确的解决方案,因为父活动可以从内存中删除,所以我的变量会丢失。

那么,如果我有一个 Activity 并希望两个屏幕内容进行交互,那么最好的方式是什么,我应该使用什么结构呢?

【问题讨论】:

    标签: android layout view android-activity fragment


    【解决方案1】:

    这就是 Fragments 的用途。请参阅the api guide 或只是谷歌的教程。您可以通过回调在 Fragment 之间进行通信,但您不一定需要,因为您可以在按钮单击时调用静态类。这样你就不需要过多的交流了。沟通有点难以描述,因为我们不知道按钮会做什么。但仍然:考虑使用片段。它们专为做到这一点而设计,并且有大量教程展示了如何做到这一点。过渡将比活动之间更平滑。

    使用 Fragments,您将拥有一个承载多个 Fragment 的 Activity,这些 Fragment 承载 Imageviews 和 Button。您可以实现 swipe 或 onclick 或任何您想用来切换的东西,然后对其进行回调,如果您愿意,可以使用它返回数据。通过该回调调用 Activity 中的对应函数,您可以在其中创建下一个 Fragment,向其中添加数据并用它替换旧的 Fragment。
    深入解释这一点有点过分,因为片段如何工作将是一个不同的问题。但这基本上就是您对它们的处理方式。

    如果你决定使用活动,你应该使用 putExtra to intent 方式。

    【讨论】:

      【解决方案2】:

      您可以使用 Intent 在活动之间传递数据。将所需的数据添加到 Intent 并开始新的活动。

      Intent i = new Intent(this, SecondActivity.class); i.putExtra("one", "someValue"); i.putExtra("two", "anotherValue"); startActivity(i);

      【讨论】:

      • 那么Activity是解决这个问题的最好方法吗?我的变量之一是一个巨大的数组。我不应该为我的第二个屏幕使用自定义 View 类吗?
      • 使用 singleton 类来保存数组并以这种方式共享,或者,如您所说,使用自定义视图并将其动画化到视图中。正如您所说,如果您的数组是“巨大的”(您没有定义),通过 Intent 传递它可能是错误的解决方案。
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-12-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-24
      相关资源
      最近更新 更多