android之MVP开发模式初探

   最近接触到MVP项目,之前只是听过,没有使用过这种模式进行开发,现在实践了一下感觉的确比一锅粥开发清楚多了,
代码逻辑清晰。我对MVP的了解主要也是看别人的博客,其实我对MVP分别代表什么并不深究,相信大家看一下下面的代码
就会明白MVP是如何使用的。
Model:
public class ListViewMode {
    interface DataProvider {
        void getdatasuccess(List<String> list);

        void getdatafail(String msg);
    }

    interface DataGetter {
        void getdata();
    }
}
View:
public class MainActivity extends AppCompatActivity implements ListViewMode.DataProvider {
    @Bind(R.id.listview)
    ListView listview;
    ListViewPresenter presenter;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        ButterKnife.bind(this);
        initData();
    }

    private void initData() {
        presenter = new ListViewPresenter(this);
        presenter.getdata();
    }

    @Override
    public void getdatasuccess(List<String> list) {
        listview.setAdapter(new ListViewAdapter(MainActivity.this, list));
    }

    @Override
    public void getdatafail(String msg) {
        Toast.makeText(MainActivity.this, msg, Toast.LENGTH_SHORT).show();
    }
}

Presenter:
public class ListViewPresenter implements ListViewMode.DataGetter {
    ListViewMode.DataProvider provider;

    public ListViewPresenter(ListViewMode.DataProvider dataProvider) {
        provider = dataProvider;
    }


    @Override
    public void getdata() {
        ArrayList<String> data = new ArrayList<>();
        for (int i = 0; i < 40; i++) {
            String s = "这是第" + i + "条数据";
            data.add(s);
        }
        if (data.size() > 0) {
            provider.getdatasuccess(data);
        } else {
            provider.getdatafail("获取数据失败");
        }
    }
}
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值