3

我刚开始学习 Android 开发,我读到基本上有 3 种“构建视图”的主要方法是:

  • 基于 Java:使用 Java 定义字符串、布局窗口、创建 GUI 控件和分配事件处理程序。就像 Swing 编程一样。
  • 基于 XML:使用 XML 文件定义字符串、布局窗口、创建 GUI 控件和分配事件处理程序。Java 方法将从 XML 文件中读取布局并将其传递给 setContentView
  • 混合:使用 XML 文件定义字符串、布局窗口和创建 GUI 控件。使用 Java 分配事件处理程序

这 3 种不同方法的优点和局限性是什么?

初学者或成熟的程序员应该使用哪一个?

我不是在这里要求主观答案(在被标记之前:))。一定有一些事实使这些方法彼此不同(速度、可维护性、可读性......)

4

2 回答 2

2

基于 XML 就像在网页中使用 CSS。使用 XML 将关注点巧妙地分离到 MVC(模型-视图-控制器)模式中。如果一切都在 XML 中指定,那么您的 Activity 可以为不同的屏幕使用不同的布局文件,并且只需更改为新的 XML 文件即可轻松更新这些元素的呈现。这是一种很好的软件开发实践,在重新设计或重用组件时有很大帮助。在某些情况下,您可能仍需要在 Java 中动态设置某些内容,但您应该尝试将所有与表示相关的内容放入 XML 文件中。

在我看来,事件处理程序仍应在 Java 中设置和定义。这与演示无关,因此不属于 XML 文件。我不使用 onclick XML 属性。此外,如果您在 onclick 属性中设置它,如果您在 Java 中重构方法名称但忘记更新 XML 文件,则可能会中断连接。

于 2012-10-31T18:13:30.027 回答
1

尽可能使用 XML 的好处是所有的 Android 工具都提供了对这种编程风格的支持(UI 编辑器等)。如果你用代码做所有事情,你就靠自己了。(想查看更改基于代码的布局的效果吗?构建您的应用程序并在模拟器中运行它。使用基于 XML 的布局,您可以在进行更改的 XML 编辑器中预览它。)

关于事件处理程序,在 XML 中声明它们(例如,使用android:onClick属性)的主要优点是您不必声明事件处理程序类。这里的优势虽然不是特别强,但我经常使用您所描述的混合方法。

我建议刚入门的 Android 程序员(无论是否有其他编程经验)在 Android 推动的 XML 样式方面打下坚实的基础。

于 2012-10-31T17:42:59.407 回答