我希望我的应用程序分为两部分:逻辑代码和UI。
我试图在每个活动中使用控制器类(这里我保留逻辑代码)来实现它。 活动将消息发送到控制器并以两种方式接收答案:
活动设置了一些侦听器,控制器在操作完成时触发此侦听器。
当控制器有很多对象时,会出现问题(每个对象应该处理一组操作,并且我必须设置每个操作并触发一个监听器):很难保持代码同步。
我在问你是否知道更好的方法来实现这种机制。
谢谢。
答案 0 :(得分:10)
就个人而言,我认为的活动是控制器。窗口小部件是视图。其他人可能不同意,我远离MVC纯粹主义者。
答案 1 :(得分:5)
Android方法很漂亮。
首先要熟悉视图,然后看看你认为合适的扩展内容。
视图通过UI线程连接到控制器,UI线程是应用程序的主线程。您可以在XML中定义回调等,并通过使用android xml方法在此线程中处理所有按钮单击等。
您应该将XML视为视图,UI线程控制器和后台线程/服务/广播接收器等都是模型的一部分。
答案 2 :(得分:0)
您可以遵循“ Model View Presenter(MVP)”模式,该模式几乎可以组织代码并保持代码段清晰。
我喜欢虚拟视图方法,其中所有视图事件(如onClick,onLongClick ..)都委派给演示者,演示者负责业务逻辑并更新视图。
请考虑以下情况:用户在笔记中添加了一些文本,并且在视图中,我们有一个文本框texfield来指示状态并添加按钮。
用户键入文本,然后单击“添加”按钮。
添加按钮:“嘿演示者!用户要添加一些内容”。
演示者:“请给我您的文本, TextBox ”。
文本框:提供键入的文本。
演示者:使用商务逻辑验证文本。 使用Model类将项目添加到数据库,并将状态文本发送到 StatusTextView 显示。
StatusTextView :更新演示者发送的文本。
正如您所看到的,视图执行了Presenter所说的。您可以使用不同类型的Presenters来对用户交互进行不同的操作。
关于MVP的Google,并选择您喜欢的实施方式。在MVP中,我唯一的缺点是您的代码将变得庞大而清晰。
少量链接:
https://medium.com/cr8resume/make-you-hand-dirty-with-mvp-model-view-presenter-eab5b5c16e42
https://www.journaldev.com/14886/android-mvp
快乐编码:)