【发布时间】:2019-01-12 18:56:03
【问题描述】:
我正在学习用于 Android 编程的新架构组件,但我很难理解活动的职责是什么。我知道他们只应该处理 UI,这是有道理的,但在多大程度上呢?假设我有一个活动,最初有一个 EditText,用户可以在其中输入字符串。在此下方有一个按钮,可添加另一个 EditText 供用户输入另一个字符串。应该如何在幕后处理这些数据?我想出的两个解决方案如下:
1) 处理 ViewModel 中的数据。
用户点击按钮 -> Activity 告诉 ViewModel -> ViewModel 维护 EditTexts 列表 -> 用户完成后,Activity 告诉 ViewModel -> ViewModel 处理数据
我在这种方法中看到的问题是,现在 ViewModel 中有 UI 元素,我必须处理某种状态(用户添加了一些 EditText,但随后取消了整个操作,ViewModel 必须清除它列表)
2) 处理Activity中的数据。
用户单击按钮 -> Activity 维护 EditTexts 列表 -> 用户完成后,Activity 将字符串列表发送到 ViewModel -> ViewModel 处理数据
我看到这种方法的问题是,如果视图被替换,现在视图中的逻辑必须被替换,它不像它应该的那样“愚蠢”。
处理这种情况的首选方法是什么?
【问题讨论】:
-
该按钮是否仅用于创建新的
EditText?它是否与已经存在的EditTexts 有任何关系? -
@Anatolii 它没有