activity 和布局之间的联系?如何更改布局?如何启动和销毁一个activity?

Connection between activity and layout? How to change layout? How to start and destroy an activity?

我是 Android 和 Eclipse 的初学者,我有几个问题可以帮助我理解 Android 的理念:

  1. activity 完成所有工作 "behind the scenes"。活动连接到 XML 文件中的布局。当activity 启动时,如果在setContentView 方法中声明,将显示连接的布局。 Activity 可以是独立的,没有任何布局,它可以被另一个 activity 调用,并且会在不显示任何布局的情况下完成所有工作。 Activity 类似于 php 文件,由 HTML 中的提交按钮调用,布局为 .HTML 显示元素。

我说的对吗?

  1. 例如,如果我想更改我的应用程序的布局,我想在单击 Layout1.xml 中的按钮时显示 Layout2.xml。然后我必须销毁与Layout1.xml连接的activity并启动与Layout2.xml连接的activity?这个对吗?有什么更好的方法吗?

  2. 我怎样才能(用什么方法)destroy/stop某个activity?

提前致谢。

最好的办法是阅读 Android 有关 http://developer.android.com/reference/android/app/Activity.html

活动的文档

不过我会在这里回答你的具体问题

  1. Activity 是用户可以看到的 window(如果未定义布局,则为隐藏的 window)。它处理用户可以看到并与之交互的应用程序部分的逻辑。如果我们采用 MVC 模型(Model View Controller),Activity 就是控制器,它控制模型中的哪些数据显示在视图(xml 布局)上。

  2. 如果你想展示一个新的window/screen/activity你不需要破坏当前的。您可以打开一个新的 activity,同时将旧的保留在后台(在后台堆栈中)。通过使用片段,您可以在 activity 中包含多个片段,因此您可以在单个 activity 中更改片段,而不是更改活动。有关片段的更多信息,请查看 http://developer.android.com/reference/android/app/Fragment.html.

  3. 这一点很大程度上依赖于activity生命周期。当 activity 被销毁时,这意味着它正在完成,这可以通过用户在 activity 上按下后退按钮来完成,activity 调用 finish() 本身或通过Android 操作系统破坏了 activity 因为其他地方需要内存(当应用程序在后台时可能会发生这种情况)。

当我们说 activity 停止时,这意味着 activity 不再对用户可见。这可能是 activity 在后台堆栈中(另一个 activity 在它前面)或者应用程序已放入后台的情况。

这是对您问题的简短回答,但我强烈建议您阅读 Android 文档以获取更多知识。