我是一名.NET移动开发人员,自从我开始使用android之后,我发现唯一可以存储视图的事件处理程序的方法是通过活动文件或创建一个类来容纳所有这些事件侦听器。有人可以提出最好的办法,我可以做到最少的混乱,并相应地存储所有的事件处理程序?在开发应用程序时,应该将事件处理程序理想地存储在哪里?
2
A
回答
1
“混乱”有点主观取决于您在实现事件处理程序时的效率以及您的应用程序的复杂程度。
比如我在这里看到的示例代码上那么像......
button1.setOnClickListener(new View.OnClickListener {...});
button2.setOnClickListener(new View.OnClickListener {...});
button3.setOnClickListener(new View.OnClickListener {...});
在各种情况下为每个Button
匿名听众往往执行非常相似的功能(Start活动1,活动开始2 ....)。最干净的方法是在Activity
实施View.OnClickListener
本身,然后使用...
button1.setOnClickListener(this);
......(依此类推每个Button
)则获得View
传递给听者的资源ID确定点击的内容以及需要完成的工作。令我惊讶的是,有多少人不知道。
至于创建一个单独的类(或类)来容纳侦听器,这取决于你进行了多少活动而变得棘手。分开维护听众有两个缺点。
首先,如果你不与具有Activity
使用匿名听众的模型去或直接实现监听,那意味着你将有一个活动的整体负载使用您的'(可能在某个时候被扩展)助手“班的听众。每次你延长你的Activity
时,你需要确保单独的课程被更新以应对它 - 可能是看不见的,你想从你的'通用'听众无法处理的Activity
中得到新的东西。
第二个潜在的问题是Android的工作方式(取决于您的应用程序)。 Android Activity
应该是模块化的 - 如果它显示特定格式的照片或图像或文档,那么它应该尽可能独立。有一个单独的类与众多的监听器在意味着一个非常简单的Activity
意味着做一个非常简单的任务最终加载一个类(或类),其中包含整个负载的监听器是不相关的。
坚持简单 - 优化每个Activity
的听众并保持它们独立。如果您觉得有任何重复,请定义您自己的基类并从此处扩展。
0
目前尚不清楚你想得到什么结果。据我所知,你不想创建任何活动子类来处理UI事件。如果是这样,那么这真的很奇怪 - 你会如何显示那些不在活动中的视图?
相关问题
- 1. Android PopupWindow事件处理程序应该去哪里?
- 2. ASP.NET应用程序应该在哪里存储数据文件?
- 3. 处理中断的程序,即中断处理程序存储在哪里?
- 4. 从哪里开始管理事务在java SOA应用程序
- 5. 在哪里存储我开发的应用程序?
- 6. 我应该在哪里存储C#应用程序的数据?
- 7. C#:你应该在哪里放置事件处理程序委托?
- 8. 使用AutoEventWireup时,事件处理程序在哪里连线?
- 9. 我应该在哪里放置处理程序?
- 10. 我应该使用哪种ComboBox事件处理程序?
- 11. 哪些winJS事件处理程序应该在最小化Windows 8上的应用程序时使用?
- 12. 在ios应用程序中处理理想的超时时间
- 13. 事件处理程序应该直接响应事件吗?
- 14. 我应该从哪里开始开发windows phone应用程序
- 15. 我应该在哪里将静态数据存储在Web应用程序中
- 16. HTML5/JS存储事件处理程序
- 17. 我应该在哪里处理rails应用程序中字的大小写?
- 18. PageLoaded事件处理程序在应用程序级别
- 19. 启动应用程序时的Android事件处理程序
- 20. 处理应用程序事件
- 21. branch.initSessionWithLaunchOptions处理程序在应用程序退出时触发
- 22. 应用程序未打开时处理后退按钮事件
- 23. 我应该在Android事件处理程序中将超级调用放在哪里?
- 24. 在事件处理程序
- 25. Windows Store应用程序在哪里存储其本地设置?
- 26. 从Property Changed处理程序调用MessageDialog存储应用程序
- 27. 我应该在哪里存储我的网络应用程序的文件?
- 28. WP7应该在XAML中添加事件处理程序吗?
- 29. 在Java Web应用程序中,我应该在哪里存储用户照片?
- 30. Elmah部分处理程序在哪里