10

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

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

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

4

4 回答 4

5

在 1.6 和更高版本中,您可以在布局 XML 文件中指定 onClick 方法来减少一些脂肪。我通常只是将它全部隐藏在我调用 onCreate 方法的 initUi() 方法中。这样至少 onCreate 更容易阅读。

于 2011-05-01T21:15:30.200 回答
5

我做的事情:

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

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

于 2011-05-01T21:27:50.440 回答
1

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

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

于 2011-05-01T21:58:05.527 回答
0

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

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

于 2011-05-01T21:16:43.983 回答