我有一个使用MVVM和数据绑定的应用程序的简单示例,该应用程序基本上是两个EditText,然后是一个按钮。 单击该按钮应打开一个新活动。
是否有任何理由不将活动引用传递给布局,然后调用它以调用新活动?
<data>
<variable
name="firstActivity"
type="com.example.view.FirstActivity"/>
</data>
<Button
android:id="@+id/button"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:onClick="@{() -> firstActivity.navigateToNextPage()"/>
答案 0 :(得分:0)
它完全违反了MVVM架构,因为您始终将视图模型绑定到布局而不是视图。
视图应该是独立的,以便获得松散耦合,例如,在这种情况下,意图代码位于View中,而视图直接由布局忽略,而无需viewmodel干预。
由于视图知道您要在什么基础上进行新活动,因此视图中的业务逻辑不是开发人员要做的常规方法。
等等……我想上面有很多话,那该怎么办呢?看下面w
1。创建各个视图的视图模型 2.绑定按钮时也要绑定editText,嘿,但是这次要用viewModel。
4。将该逻辑函数绑定到布局的OnClicked中。
现在在viewmodel中编写一个on属性更改事件。
使用on属性更改回调来调用onproperty更改事件。
完成后,只有u才能执行Intent函数。
因此,最后,View不知道为什么要使用其他功能。
注意:-
新手在堆栈中溢出,因此请原谅打破写答案的任何违规行为。 谢谢