首页 » Android » android的MVC模式网络请求demo

android的MVC模式网络请求demo

原文 http://blog.csdn.net/qq_33847549/article/details/79219625

2018-02-01 02:01:13阅读(642)

demo使用了

okhttputils---网络请求,butterknife---控件快捷,gson解析

主要文件如下图

<a href=android的MVC模式网络请求demo" src="http://img.blog.csdn.net/20180131165029468?watermark/2/text/aHR0cDovL2Jsb2cuY3Nkbi5uZXQvcXFfMzM4NDc1NDk=/font/5a6L5L2T/fontsize/400/fill/I0JBQkFCMA==/dissolve/70/gravity/SouthEast" alt="">

MVC模式模式主要文件分别是MainActivity(M),布局文件(V),MvcListen、MvcModel、MvcModelImp(C),下面分别按编码顺序说明demo


1、MvcListen

public interface MvcListener {
    void onSuccess(String str);
    void onFailed();
}
定义监听接口,包含成功和失败2个方法,成功方法用来传递下载的JSON数据

2、MvcModel

public interface MvcModel {
    void getHttpInfo(Map<String,String>  params,String url,MvcListener mvcListener);
}
定义实现接口,用于网络请求

3、MvcModelImp

public class MvcModelImp implements MvcModel{
    @Override
    public void getHttpInfo(Map<String, String> params, String url, final MvcListener mvcListener) {
        FormBody.Builder builder = new FormBody.Builder();
        //遍历集合,,,map集合遍历方式
        for (String key : params.keySet()) {
            builder.add(key, params.get(key));
        }
        OkHttpUtils
                .get()
                .url(url)
                .params(params)
                .build()
                .execute(new StringCallback() {
                    @Override
                    public void onError(okhttp3.Call call, Exception e, int id) {
                        mvcListener.onFailed();
                    }
                    @Override
                    public void onResponse(String response, int id) {
                        Log.e("response===",response);
                        mvcListener.onSuccess(response);
                    }
                });
    }
}
类文件实现MvcModel接口,因为接口没办法实例化


4、下面是布局文件(一个button一个textview的简单布局)
<?xml version="1.0" encoding="utf-8"?>
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    xmlns:tools="http://schemas.android.com/tools"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    tools:context="com.sf.mvc.activity.MainActivity"
    android:orientation="vertical">
    <Button
        android:id="@+id/btn_summit"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="请求数据"/>
    <TextView
        android:id="@+id/tv_str"
        android:layout_width="wrap_content"
        android:layout_height="wrap_content"
        android:text="Hello World!" />
</LinearLayout>
5、下面是MainActity,主要用于view展现以及点击操作

最新发布

CentOS专题

关于本站

5ibc.net旗下博客站精品博文小部分原创、大部分从互联网收集整理。尊重作者版权、传播精品博文,让更多编程爱好者知晓!

小提示

按 Ctrl+D 键,
把本文加入收藏夹