处理 UI 事件的最佳实践

发布于 2024-11-04 14:22:23 字数 184 浏览 1 评论 0原文

我已将 UI 事件的所有绑定代码放在 OnCreate() 上。它使我的 OnCreate() 变得巨大。

在 android 中是否有实现 UI 事件的模式?我可以在 View xml 文件中添加方法,然后将所有处理程序代码放在其他地方吗?

简而言之,我想我问如何使用 android 应用程序代码实现 MVVM 模式?

I have put the all the binding code for UI events on OnCreate(). It has made my OnCreate() huge.

Is there pattern around implementing UI events in android ? Can I add methods in View xml file and then I can put all the handler code somewhere else.

In a nutshell , I think I am asking how can I implement MVVM pattern with android app code ?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(4

奢欲 2024-11-11 14:22:23

我所做的事情:

  1. 将所有 onClick 函数保留在 XML 中。避免 Java 代码中出现大量混乱。
  2. 将事件侦听器初始化为活动类的成员,而不是将它们保留在函数中。我不喜欢我的代码中有太多花括号。让我很困惑。
  3. 如果我的列表适配器变得太大,我会将它们保留在单独的类中,而不是作为活动类的成员,然后将所有视图侦听器保留在适配器中。
  4. 为了避免创建太多 onClick 函数,我有时会保留一个函数,例如 onNavigatonClick ,然后使用 view.getId() 来查看单击了哪个按钮。由于未检查 XML 中的函数调用是否有效,因此如果函数名称错误,则会导致运行时错误。
  5. 如果特定视图需要大量 UI 交互代码,我会使用 GestureDetector 创建自定义视图来处理 UI 交互。

我想这仍然是相当基础的,因为我还没有太多使用 Java 的经验。

Stuff that I do:

  1. Keep all onClick functions in the XML. Avoids a lot of clutter in the Java code.
  2. Initialize event listeners as members of the activity class rather than keeping them in a function. I don't like too many curly braces in my code. Confuses the hell out of me.
  3. If my list adapters get too big I keep them in a separate class rather than as a member of the activity class and then keep all view listeners there in the adapter.
  4. To avoid creating too many onClick functions I sometimes keep one function like onNavigatonClick and then use view.getId() to see which button was clicked. As the XML is not checked for valid function calls, it leads to runtime errors if your function name is wrong.
  5. If a particular view needs a lot of UI interaction code, I create a custom view with a GestureDetector to handle UI interactions.

I guess this is still quite basic as I haven't had much experience with Java yet.

爱要勇敢去追 2024-11-11 14:22:23

在 1.6 及更高版本中,您可以指定 onClick 方法 在您的布局 XML 文件 中删除一些多余内容。我通常只是将其全部隐藏在调用 onCreate 方法的 initUi() 方法中。这样至少 onCreate 更容易阅读。

In 1.6 and later you can specify onClick methods in your layout XML file to trim a bit of the fat. I generally just hide it all away in a initUi() method that I have my onCreate method call. This way at least the onCreate is easier to read.

长不大的小祸害 2024-11-11 14:22:23

对此已有很多好的答案。 :)

如果您使用的是 Android 1.6 或更高版本,您可能会发现新的 fragments API 有助于将您的活动组织和划分为多个逻辑单元。

Lots of good answers to this already. :)

If you're using Android 1.6 or later you might find the new fragments API helpful for organizing and partitioning your activities into several logical units.

水水月牙 2024-11-11 14:22:23

onCreate 通常是调用 setContentView 和设置侦听器的最佳位置,但处理用户交互的代码通常位于 onClick、onTouch、onKey 等例程中。

也许如果您发布代码我们可以看到您做了什么?

onCreate is usually the best place for calling setContentView and setting up listeners, but the code for handling the user interractions normally goes in onClick, onTouch, onKey etc. routines.

Maybe if you posted your code we could see what you've done?

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文