Java 创建基本MVP Android应用程序
此应用程序有一个带有EditText、Textview和按钮的用户界面。该按钮将复制用户在EditText对象中键入的文本,并将其放置在TextView中 MVP和MVVM似乎是当今最流行的设计模式Java 创建基本MVP Android应用程序,java,android,mvp,Java,Android,Mvp,此应用程序有一个带有EditText、Textview和按钮的用户界面。该按钮将复制用户在EditText对象中键入的文本,并将其放置在TextView中 MVP和MVVM似乎是当今最流行的设计模式 本着学习其中一种架构设计模式的精神,我如何使这个最基本的应用程序适应MVP架构模式 在开始任何一段代码之前,我肯定会推荐一些研究。如今,Android提供了许多有趣的应用程序架构,尽管选择最适合你的应用程序架构并不简单,但这一过程会让你学到很多东西 一个很好的起点是谷歌官方的GitHub。不仅有许多
本着学习其中一种架构设计模式的精神,我如何使这个最基本的应用程序适应MVP架构模式 在开始任何一段代码之前,我肯定会推荐一些研究。如今,Android提供了许多有趣的应用程序架构,尽管选择最适合你的应用程序架构并不简单,但这一过程会让你学到很多东西 一个很好的起点是谷歌官方的GitHub。不仅有许多不同的体系结构,如MVP、MVVM、MVI,而且每个体系结构中都有一些有趣的变体 另一方面,Android正在做一项伟大的工作,试图简化这项工作,创建大量的库。这就是所谓的Android架构组件,并开始使用和采用它们的模式 最后,如果您仍然决定使用MVP,那么在您的示例中,您必须做以下几件事:
MainActivity
(视图)应该实现该视图的约定(例如:MainViewContract
)MainPresenter
的引用,并传递实现MainViewContract
的视图的引用mainportercontract
)MainPresenter
将负责业务处理视图的输入和输出。在您的案例中,输入和输出非常简单:
输入(MainPresenterContract
):
void copyText(字符串textocopy)代码>
MainViewContract
):
void showCopiedText(字符串copiedText)代码>
当用户单击该按钮时,您将通过presenter本地实例发送消息
copyText
。然后,演示者将获得该结果并调用showCopiedText
执行输出。由于主视图MainActivity
实现了MainViewContract
,因此您将在视图的本地方法中收到输出消息,您只需在Textview
上绘制文本。您为什么选择MVP而不选择[architecture component]()。向presenter类说再见并进行调整您可以尝试架构组件的示例我有点想回答这个问题,但我忘了为什么要投否决票?
public class MainActivity extends AppCompatActivity {
//text
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
}
public void sendMessage(View view) {
//Grab input
EditText editText = findViewById(R.id.editText);
String message = editText.getText().toString();
//Throw input onto the label
TextView destinationText = findViewById(R.id.destinationText);
destinationText.setText(message);
}
}