Android 不同实施方法的好处和局限性

Android 不同实施方法的好处和局限性,android,Android,我刚开始学习Android开发,我读到“构建视图”基本上有三种主要方法: 基于Java:使用Java定义字符串、布局窗口、创建GUI控件和分配事件处理程序。比如Swing编程 基于XML:使用XML文件定义字符串、布局窗口、创建GUI控件和分配事件处理程序。Java方法将读取 从XML文件布局并将其传递给setContentView 混合:使用XML文件定义字符串、布局窗口和创建GUI控件。使用Java分配事件处理程序 这三种不同方法的优点和局限性是什么? 初学者还是经过确认的程序员更应该使

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

  • 基于Java:使用Java定义字符串、布局窗口、创建GUI控件和分配事件处理程序。比如Swing编程
  • 基于XML:使用XML文件定义字符串、布局窗口、创建GUI控件和分配事件处理程序。Java方法将读取 从XML文件布局并将其传递给setContentView
  • 混合:使用XML文件定义字符串、布局窗口和创建GUI控件。使用Java分配事件处理程序
这三种不同方法的优点和局限性是什么?

初学者还是经过确认的程序员更应该使用哪一个?

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

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

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


我建议刚开始的Android程序员(不管是否有其他编程经验),在Android推动的XML风格中获得坚实的基础。

< >强>基于XML的方式就像使用CSS用于网页。< /强>使用XML将关注点整齐地分成MVC(Model VIEW Controller)模式。如果所有内容都是用XML指定的,那么您的活动可以为不同的屏幕使用不同的布局文件,并且这些元素的表示形式可以通过更改为新的XML文件轻松更新。这是一种很好的软件开发实践,在重新设计或重用组件时会有很大帮助。在某些情况下,您可能仍然需要在Java中动态地设置一些内容,但是您应该尝试将所有与表示相关的内容放在XML文件中


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

(我仍然认为这个问题是开放的。然而)XML设计快速直观,但它是静态的。我用它来创建构建块。使用Java dynamic进行设计,具有更多的特性,但可能会很冗长(尤其是LayoutParams类!)。我把它用于动态数据,并把装饰放在我的XML基础上,就像HTML和HTML+PHP一样。一个是静态的,视觉上更容易,另一个给你更多的可能性,但你可能不需要这么多的复杂性(就像几乎所有人在Android上)。除非您有特定的限制,否则我建议您使用XML。