Android MVP+Dagger2使用教程

Dagger2是一个依赖注入框架,在解耦合方面堪称强大。如果你还不知道什么是依赖注入,以及使用Dagger2的原因,那么还是麻烦你先去google、百度一下,这里我暂时不会涉及dagger2的原理,而是使用一个非常简单的MVP例子来应用dagger2。为什么要使用MVP的例子讲解呢?因为dagger2和MVP是天造地设的一对~、

一、不使用dagger2的MVP Demo

这个MVP Demo非常简单,模拟手机号码归属地查询的实现。如下图,在EditText中输入手机号码,点击查询按钮,就会显示出手机号码所归属的省市。PS:为了简(偷)便(懒),这里并不存在网络请求,我只是模拟了这一过程而已,所以手机号输入可以是随意的字符即可,只要保证EditText的内容不为空就可以了,各位见怪勿怪哈哈哈~
这里写图片描述

MVP分为model、view、和presenter,其中Activity承担View的角色,只负责控件的显示和更新。model负责业务逻辑和各种数据实体,presenter则负责连接Activity。

1、View

首先是IQueryView.java

public interface IQueryView {

    //查询成功后,显示手机归属地的查询结果
    void showSuccessMsg(String successMsg);
    //查询失败,显示失败原因
    void showErrorMsg(String errorMsg);
}

然后在MainActivity中实现该接口:
MainActivity.class

public class MainActivity extends AppCompatActivity implements IQueryView,View.OnClickListener{
   
    //输入手机号码
    EditText et;
    //显示查询结果
    TextView tv;
    Button btn;

    //presenter的实现在下面
    public QueryPresenter presenter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        et= (EditText) findViewById(R.id.et);
        tv= (TextView) findViewById(R.id.tv_res);
        btn= (Button) findViewById(R.id.btn_query);

        presenter=new QueryPresenter(this);
        btn.setOnClickListener(this);
    }

    //在TextView中显示查询结果,Activity只负责View的更新和显示
    @Override
    public void showSuccessMsg(String successMsg) {
        tv.setText(successMsg);
    }

    //查询失败时,Toast提示
    @Override
    public void showErrorMsg(String errorMsg) {
        Toast.makeText(
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值