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

标签 java android xml android-layout

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

  1. Activity 在“幕后”完成所有工作。 Activity 连接到 XML 文件中的布局。当 Activity 启动时,如果在 setContentView 方法中声明,将显示连接的布局。 Activity 可以是独立的,没有任何布局,它可以被另一个 Activity 调用,并且将完成所有工作而不显示任何布局。 Activity 类似于一个 php 文件,由我的 HTML 提交按钮调用,布局是显示元素的 .HTML。

我说的对吗?

  1. 例如,如果我想更改我的应用程序的布局,我想在单击 Layout1.xml 中的按钮时显示 Layout2.xml。然后我必须销毁与 Layout1.xml 连接的 Activity 并启动与 Layout2.xml 连接的 Activity ?它是否正确?有没有更好的方法来做到这一点?

  2. 我怎样才能(用什么方法)销毁/停止某个 Activity ?

预先感谢您。

最佳答案

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

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

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

  2. 如果你想显示一个新的窗口/屏幕/Activity ,你不需要销毁当前的。您可以打开一个新 Activity ,同时将旧 Activity 保留在后台(在后台堆栈中)。通过使用 fragment ,您可以在一个 Activity 中拥有多个 fragment ,而不是更改 Activity ,您可以在单个 Activity 中更改 fragment 。有关 fragment 的更多信息,请查看 http://developer.android.com/reference/android/app/Fragment.html .

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

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

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

关于java - Activity 和布局之间的联系?如何更改布局?如何启动和销毁一个 Activity ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28332375/

相关文章:

javascript - 打开文件浏览器,选择 XML,使用 HTML/JQuery/Javascript 解析字段

java - 覆盖 "equals"方法 : how to figure out the type of the parameter?

Android Studio 无法在任务 ':project:dexDebug' 上调用 IncrementalTask​​.taskAction()

java - XML 子节点计数 - Java

java - Android获取当前UTC时间

android - Android 中的组合首选项

java - 如何在FXML文档中实现对JavaFX的语言支持?

java - 得到 NullPointerException,但不明白为什么

java - 在 Android 应用程序中使用 facebook 登录

java - 无法将 CryptoPermission 添加到 java.policy 文件