关于android:处理UI事件的最佳做法

best practices for handling UI events

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

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

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


我从事的工作:

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


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


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

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


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

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