MVP的框架

本文介绍了一个基于Xutils的Android应用项目实现MVVM架构的过程,包括自定义接口、使用HttpUtils进行网络请求、创建MvpApplication类初始化Xutils,并通过BasePresenter和HomePresenter实现了视图与模型之间的解耦。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

mvp的框架
<自定义两个接口:一个总接口,一个继承它>
第一个接口:这里写图片描述
第二个接口:这里写图片描述
使用Xutils控件:
配置的权限:



android:name=”.application.MvpApplication”
在新建一个类
public class MvpApplication extends Application {
@Override
public void onCreate() {
super.onCreate();
x.Ext.init(this);
x.Ext.setDebug(BuildConfig.DEBUG);
}
}
//—————————————(HttpUtils类)———
package baway.com.cj.mvptest1503a.model.utils;

import com.google.gson.Gson;

import org.xutils.common.Callback;
import org.xutils.http.RequestParams;
import org.xutils.x;

import java.util.HashMap;
import java.util.Iterator;

/**
* Created by cj on 2017/5/10.
*/

public class HttpUtils {

public static <T>void getTestData(String url,HashMap<String,String> hashMap, final CallbackVideoData callbackVideoData, final Class<T> clazz) {
    RequestParams requestParams = new RequestParams();
    requestParams.setUri(url);
    if (hashMap != null) {
        Iterator<String> iterator = hashMap.keySet().iterator();
        while (iterator.hasNext()){
            String key = iterator.next();
            String value = hashMap.get(key);
            requestParams.addQueryStringParameter(key, value);
        }
    }
   // requestParams.addQueryStringParameter("token","1234");
    x.http().get(requestParams, new Callback.CommonCallback<String>() {
        @Override
        public void onSuccess(String result) {

            Gson gson = new Gson();
            T t = gson.fromJson(result,clazz);
            callbackVideoData.callback(t);
        }

        @Override
        public void onError(Throwable ex, boolean isOnCallback) {

        }

        @Override
        public void onCancelled(CancelledException cex) {

        }

        @Override
        public void onFinished() {

        }
    });

}

public interface CallbackVideoData<T>{
    void callback(T t);
}

}
//———————————-(BasePresenter类)
package baway.com.cj.mvptest1503a.presenter;

import baway.com.cj.mvptest1503a.view.iview.IMvpView;

/**
* Created by cj on 2017/5/9.
*/

public class BasePresenter {
private T mt;
public void attachView(T t) {
this.mt = t;
}
public T getMvpView() {
return mt;
}
}
//————————————————HomePresenter类
package baway.com.cj.mvptest1503a.presenter;

import android.util.Log;
import android.widget.ImageView;
import org.xutils.x;
import java.util.HashMap;
import baway.com.cj.mvptest1503a.model.utils.HttpUtils;
import baway.com.cj.mvptest1503a.view.iview.IHomeView;

/**
* Created by cj on 2017/5/9.
*/

public class HomePresenter extends BasePresenter {
private String url = “http://api.expoon.com/AppNews/getNewsList/type/2/p/1“;
private HashMap

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值