使用viewModel模式时如何将editText文本获取到viewModel

时间:2015-09-02 11:56:23

标签: android

我正在尝试使用AndroidViewModel实现ViewModel模式。我认为我有一些EditText。为了使视图模型负责存储数据,我需要在输入数据时将数据提供给视图模型。

一种方法是为每个TextWatcher制作一个EditText,并在更改文本时将其保存到viewmodel。这是正确的方法吗?

1 个答案:

答案 0 :(得分:0)

根据我的理解,ViewModel处理您在视图容器中创建的View(可能是FragmentActivity)而不是对他们的生命周期变化感到不安。

问答:这里的诀窍是,您将View上的所有用户互动转发给ViewModel。所以,是TextWatcher会有效,但您必须在ViewModel上而不是View上写下来。 此外,ViewModelHelper包含您可以从相应的视图方法中调用的方法(例如,具有Activity.onSaveInstanceState()调用

https://github.com/inloop/AndroidViewModel/blob/master/library/src/main/java/eu/inloop/viewmodel/ViewModelHelper.java#L162

我认为您不需要为每个TextWatcher创建EditText。您是否无法创建一个TextWatcher,您将分配给所有EditText,其中一个方法可以识别哪个TextView触发了此操作并采取相应措施?< / p>

Get Editable id in afterTextChanged event