具有数据绑定自定义模型类的MVP

时间:2018-11-20 12:31:48

标签: android android-databinding android-mvp

我有一个移动应用程序。我正在将MVP模式与数据绑定库一起使用。但是我会问一个问题。

我有一个模型类,用于将数据发送到Web服务。

类的名称由CreateTaskBody.java调用。

@SerializedName("username")
private String email;

@SerializedName("taskName")
private String taskName;

@SerializedName("startDate")
private String startDate;

@SerializedName("endDate")
private String endDate; 

我正在将此模型类与数据绑定一起使用。但是我不知道去哪里上这个模型课。

示例

1) 片段类

binding.get.setPresenter(myPresenter);
presenter.body.dateString = "ASDASDASD";

以XML

 <variable
        name="presenter"
        type="net.asd.ui.tasks.createtask.CreateTaskPresenterImpl"/>
         android:text="@{presenter.body.dateString}" />

OR

2) 片段类

CreateTaskBody body = new CreateTaskBody();
body.dateString = "ASDASDASD";

以XML

<variable
       name="body"
       type="net.asd.model.tasks.createtask.CreateTaskBody"/>
       android:text="@{body.dateString}" />

我应该使用其中哪些结构? 1还是2?

1 个答案:

答案 0 :(得分:0)

除了下面的代码外,请按照第二种方式进行操作。

presenter.body = new CreateTaskBody(); // set model in presenter
binding.body = presenter.body; // now set layout model referred to presenter model

实际上,通过这种方式,您不会破坏MVP模式,因为您的布局模型仍称为演示者模型。相反,如果您直接在布局中传递不会遵循MVP模式的模型。