我正在学习Android编程的新架构组件,但是很难理解Activity的责任范围。我知道它们只应处理UI,这很有道理,但是到什么程度呢?假设我有一个Activity,在初始状态下,有一个EditText供用户输入一个字符串,有一个按钮在下面,点击后可以添加另一个EditText以供用户再次输入字符串。这些数据如何在后台处理呢?我想到的两个解决方案如下:
1)在ViewModel中处理数据。
用户单击按钮-> Activity告诉ViewModel-> ViewModel维护EditText列表-> 当用户完成操作时,Activity告诉ViewModel-> ViewModel处理数据
我认为这种方法的问题在于现在ViewModel中有了UI元素,我需要处理某种状态(例如,用户添加了一些EditText,但取消了整个操作,ViewModel必须清除其列表)
2)在Activity中处理数据。
用户单击按钮-> Activity维护EditText列表-> 当用户完成操作时,Activity将字符串列表发送给ViewModel-> ViewModel处理数据
我认为这种方法的问题在于现在View中有逻辑代码,如果替换了此View,需要更改该代码,它不够“愚笨”。
那么处理此情况的首选方式是什么呢?
1)在ViewModel中处理数据。
用户单击按钮-> Activity告诉ViewModel-> ViewModel维护EditText列表-> 当用户完成操作时,Activity告诉ViewModel-> ViewModel处理数据
我认为这种方法的问题在于现在ViewModel中有了UI元素,我需要处理某种状态(例如,用户添加了一些EditText,但取消了整个操作,ViewModel必须清除其列表)
2)在Activity中处理数据。
用户单击按钮-> Activity维护EditText列表-> 当用户完成操作时,Activity将字符串列表发送给ViewModel-> ViewModel处理数据
我认为这种方法的问题在于现在View中有逻辑代码,如果替换了此View,需要更改该代码,它不够“愚笨”。
那么处理此情况的首选方式是什么呢?
EditText
吗?它是否与已经存在的EditText
有任何关联? - Anatolii