处理UI事件的最佳实践

时间:2011-05-01 21:08:42

标签: android android-layout event-driven-design

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

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

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

4 个答案:

答案 0 :(得分:5)

在1.6及更高版本中,您可以指定onClick方法in your layout XML file来修剪一些脂肪。我通常只是在我的onCreate方法调用的initUi()方法中隐藏它。这样至少onCreate更容易阅读。

答案 1 :(得分:5)

我做的事:

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

答案 2 :(得分:1)

已经有很多好的答案。 :)

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

答案 3 :(得分:0)

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

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