Android MVP - 我应该从哪里读取 Textview?
Android MVP - where should i read from Textview?
用户单击按钮后,我想阅读 activity 的 TextView 中的内容,然后从演示者调用方法以根据发送给它的信息获取 return。
但是我不知道演示者是否应该自己获取这些数据,或者我是否应该在调用他的方法之一时从 Activity class 传递给他(这意味着在 activity class 内的 TextFields 中获取数据,然后在我调用 Presenter 方法时将数据作为参数发送)。
两种方法我都试过了,但我不知道哪种方法更有条理。
使用 MVP 架构模式时,您应该在 View
上引用 Presenter
(在这种情况下,View
是您的 Activity
).他们有非常不同的职责:
- 您的
View
应该尽可能地愚蠢,即它应该只负责向用户显示任何数据并收集用户输入。
- 您的
Presenter
应负责处理显示在 View
上的所有数据,并充当 View
和 Model
之间的中间人。换句话说,对于每个可能的用户输入,Presenter
中应该有一个方法能够处理它。
例如,在您的情况下,View
负责将 TextView 的内容处理到 Presenter
。然后,Presenter
必须将这些内容传递给 Model
,后者根据您的业务逻辑对其进行处理。当 Model
完成处理后,它 returns 将结果发送给 Presenter
,然后 准备要在 [=12= 上显示的内容 ].内容准备就绪后,Presenter
会将其发送到 View
。
了解了所有这些,您应该能够回答您的问题。它会是这样的(伪代码):
class MyActivity
{
// you should inject this
Presenter myPresenter;
TextView myTextView;
...
myPresenter.doStuff(myTextView.getText().toString());
}
您将字符串传递给演示者想要的方法,然后执行您想要的操作。
button.setOnClickListenr(new View.OnClickListener() {
@Override
public void onClick(View view) {
String str = myTextView.getText().toString();
presenter.doSomething(str);
)}
为什么您需要阅读 TextView 中的内容?
View 中显示的所有数据都应来自 Presenter。
您的数据应该保存在您的 Repository 中,Presenter 可以在您的 Repository 中获取您想要的所有内容。
用户单击按钮后,我想阅读 activity 的 TextView 中的内容,然后从演示者调用方法以根据发送给它的信息获取 return。
但是我不知道演示者是否应该自己获取这些数据,或者我是否应该在调用他的方法之一时从 Activity class 传递给他(这意味着在 activity class 内的 TextFields 中获取数据,然后在我调用 Presenter 方法时将数据作为参数发送)。
两种方法我都试过了,但我不知道哪种方法更有条理。
使用 MVP 架构模式时,您应该在 View
上引用 Presenter
(在这种情况下,View
是您的 Activity
).他们有非常不同的职责:
- 您的
View
应该尽可能地愚蠢,即它应该只负责向用户显示任何数据并收集用户输入。 - 您的
Presenter
应负责处理显示在View
上的所有数据,并充当View
和Model
之间的中间人。换句话说,对于每个可能的用户输入,Presenter
中应该有一个方法能够处理它。
例如,在您的情况下,View
负责将 TextView 的内容处理到 Presenter
。然后,Presenter
必须将这些内容传递给 Model
,后者根据您的业务逻辑对其进行处理。当 Model
完成处理后,它 returns 将结果发送给 Presenter
,然后 准备要在 [=12= 上显示的内容 ].内容准备就绪后,Presenter
会将其发送到 View
。
了解了所有这些,您应该能够回答您的问题。它会是这样的(伪代码):
class MyActivity
{
// you should inject this
Presenter myPresenter;
TextView myTextView;
...
myPresenter.doStuff(myTextView.getText().toString());
}
您将字符串传递给演示者想要的方法,然后执行您想要的操作。
button.setOnClickListenr(new View.OnClickListener() {
@Override
public void onClick(View view) {
String str = myTextView.getText().toString();
presenter.doSomething(str);
)}
为什么您需要阅读 TextView 中的内容? View 中显示的所有数据都应来自 Presenter。 您的数据应该保存在您的 Repository 中,Presenter 可以在您的 Repository 中获取您想要的所有内容。