Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/351.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java Android MVP-我应该在哪里阅读文本视图?_Java_Android_Mvp - Fatal编程技术网

Java Android MVP-我应该在哪里阅读文本视图?

Java Android MVP-我应该在哪里阅读文本视图?,java,android,mvp,Java,Android,Mvp,用户单击按钮后,我想读取活动的文本视图中的内容,然后从演示者调用一个方法,根据发送给它的信息获取返回 但是,我不知道演示者是否应该自己获取这些数据,或者当我调用他的一个方法时,我是否应该从Activity类传递给他(这意味着在Activity类的TextFields中获取数据,然后在我调用presenter方法时将数据作为参数发送) 我已经尝试了这两种方法,但我不知道哪种方法更具组织性。当使用MVP架构模式时,您应该在视图上有一个对演示者的引用(在这种情况下,视图是您的活动)。他们有非常不同的责

用户单击按钮后,我想读取活动的文本视图中的内容,然后从演示者调用一个方法,根据发送给它的信息获取返回

但是,我不知道演示者是否应该自己获取这些数据,或者当我调用他的一个方法时,我是否应该从Activity类传递给他(这意味着在Activity类的TextFields中获取数据,然后在我调用presenter方法时将数据作为参数发送)


我已经尝试了这两种方法,但我不知道哪种方法更具组织性。

当使用MVP架构模式时,您应该在
视图上有一个对
演示者的引用(在这种情况下,
视图是您的
活动
)。他们有非常不同的责任:

  • 您的
    视图应该尽可能地愚蠢,即它应该只负责向用户显示任何数据并收集用户输入
  • 您的
    演示者
    应负责处理
    视图
    上显示的所有数据,并充当
    视图
    模型
    之间的中间人。换句话说,对于每个可能的用户输入,
    Presenter
    中应该有一个能够处理它的方法
例如,在您的情况下,
视图
负责将文本视图的内容处理到
演示者
。然后,
演示者
必须将这些内容传递给
模型
,该模型根据您的业务逻辑对其进行处理。当
模型
完成处理后,它将结果返回给
演示者
,然后演示者准备要在
视图
上显示的内容。内容准备好后,
演示者
会将其发送到
视图

了解所有这些,你应该能够回答你的问题。可能是这样的(伪代码):


当使用MVP架构模式时,您应该在
视图
上引用
演示者
(在这种情况下,
视图
是您的
活动
)。他们有非常不同的责任

  • 您的
    视图应该尽可能地愚蠢,即它应该只负责向用户显示任何数据并收集用户输入
  • 您的
    演示者
    应负责处理
    视图
    上显示的所有数据,并充当
    视图
    模型
    之间的中间人。换句话说,对于每个可能的用户输入,
    Presenter
    中应该有一个能够处理它的方法
例如,在您的情况下,
视图
负责将文本视图的内容处理到
演示者
。然后,
演示者
必须将这些内容传递给
模型
,该模型根据您的业务逻辑对其进行处理。当
模型
完成处理后,它将结果返回给
演示者
,然后演示者准备要在
视图
上显示的内容。内容准备好后,
演示者
会将其发送到
视图

了解所有这些,你应该能够回答你的问题。可能是这样的(伪代码):


将字符串传递给presenter-wanted方法,然后执行所需操作

button.setOnClickListenr(new View.OnClickListener() {
@Override
public void onClick(View view) {
    String str = myTextView.getText().toString();
    presenter.doSomething(str);
)}

将字符串传递给presenter-wanted方法,然后执行所需操作

button.setOnClickListenr(new View.OnClickListener() {
@Override
public void onClick(View view) {
    String str = myTextView.getText().toString();
    presenter.doSomething(str);
)}

为什么需要阅读文本视图中的内容? 视图中显示的所有数据应来自演示者。
您的数据应该保存在存储库中,演示者可以在存储库中获得您想要的一切。

为什么需要阅读文本视图中的内容? 视图中显示的所有数据应来自演示者。
您的数据应保存在存储库中,演示者可以在存储库中获取您想要的一切。

您必须获取活动中的数据,然后将其作为功能参数传递给演示者。您必须获取活动中的数据,然后将其作为功能参数传递给演示者。