gpt4 book ai didi

android - web/android类比: declarative vs programmatic layout

转载 作者:行者123 更新时间:2023-11-29 22:07:44 25 4
gpt4 key购买 nike

我有一些网络开发经验,正在学习如何构建 Android 应用。

我知道 XML 布局允许程序逻辑和 (UI-) 布局分离。这似乎类似于 JavaScript 与 HTML/CSS 的分离。

但是服务器端脚本语言的作用是什么?即如果有用户可以点击播放的音频文件列表,我如何自动生成 XML 布局(在网络世界中,我会通过交错 HTML 和 PHP 来完成)?还是我被迫以编程方式执行此操作?

最佳答案

在 web 编程世界中,由于客户端与服务器在物理上是分离的,因此需要 javascript 进行动态客户端交互,以及用于处理数据的服务器端语言。在 Android 世界中,由于 View 和代码都在同一设备(如桌面应用程序)中执行,因此不需要在 View 中编写脚本。正因为如此,Android 中的 xml 布局是完全静态的布局定义,就像一个简单的 HTML 文件。当用户与该布局交互时会发生什么,必须在使用该布局的 Activity 中的代码中定义,该布局处理用户事件 (javascript) 并处理它们(服务器端语言)。

使用您的示例,如果有一个音频文件列表,并且假设您使用了一个微调器来允许用户选择一个,您将必须使用 onClickListener 或变体附加一个事件处理程序,以告诉应用程序什么当用户选择它时执行。如果您使用 ListView,您通常会扩展 ListActivity,然后重写 onListItemClick() 以便在用户单击它时执行操作。

在网络编程世界中,这类似于将 javascript 事件处理程序附加到页面上的元素,然后当用户执行操作时该元素将响应,通常将数据发送到服务器以进行进一步处理。

所以简而言之,是的,您将被迫编写代码来响应用户的操作,并且您不能将(脚本)代码交织到布局文件中。

正常的流程是:1.在xml中定义布局2. 在你的 Activity 中使用 onCreate 中的 setContentView 来指示你正在使用的布局3.使用R对象通过id使用findViewById获取布局中定义的元素4. 将事件处理程序附加到这些元素以在用户执行操作时做出响应。

关于android - web/android类比: declarative vs programmatic layout,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10398817/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com