简单的MVP框架

先导依赖
compile 'com.squareup.okhttp3:logging-interceptor:3.9.0'
compile 'com.squareup.okhttp3:okhttp:3.9.0'
compile 'com.google.code.gson:gson:2.8.2'
compile 'com.facebook.fresco:fresco:1.5.0'
compile 'com.youth.banner:banner:1.4.9'



<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />

 IModel层

package com.example.cll.caolilujingdong.model;

import com.example.cll.caolilujingdong.Bean.XiangBean;

/**
 * Created by cll on 2017/11/9.
 */

public interface IXiangModel {
    void onSuexxc(XiangBean xiangBean);(Bean包要改)
}
Nodel层


 
package com.example.cll.caolilujingdong.model;

import android.content.Context;

import com.example.cll.caolilujingdong.Bean.XiangBean;
import com.example.cll.caolilujingdong.net.OkHttpUtils;
import com.example.cll.caolilujingdong.net.OnNetListener;

import java.io.IOException;

/**
 * Created by cll on 2017/11/9.
 */

public class XiangModel {
    private Context context;

    public XiangModel(Context context) {
        this.context = context;
    }
    public void fenlei(final IXiangModel iXiangModel, int pid){
        String url="https://www.zhaoapi.cn/product/getProductDetail?pid="+pid;
        OkHttpUtils.getInstance(context).doget(url, XiangBean.class, new OnNetListener() {
            @Override
            public void onSuccess(Object o) throws IOException {
                XiangBean xiangBean= (XiangBean) o;
                iXiangModel.onSuexxc(xiangBean);
            }

            @Override
            public void onError(IOException e) {

            }
        });
    }
}

Presenter层

package com.example.cll.caolilujingdong.presenter;

import android.content.Context;

import com.example.cll.caolilujingdong.Bean.XiangBean;
import com.example.cll.caolilujingdong.model.IXiangModel;
import com.example.cll.caolilujingdong.model.XiangModel;
import com.example.cll.caolilujingdong.view.IXiang;

/**
 * Created by cll on 2017/11/9.
 */

public class XiangPresenter {
    private Context context;
    private IXiang iXiang;
    private final XiangModel xiangModel;

    public XiangPresenter(Context context, IXiang iXiang) {
        this.context = context;
        this.iXiang = iXiang;
        xiangModel = new XiangModel(context);
    }
    public void getWuxiian(){
        int pid = iXiang.pid();

        xiangModel.fenlei(new IXiangModel() {
            @Override
            public void onSuexxc(XiangBean xiangBean) {
                iXiang.getLunbo(xiangBean);
            }
        },pid);
    }
}


View层
package com.example.cll.caolilujingdong.view;

import android.content.Context;
import android.content.SharedPreferences;
import android.os.Bundle;
import android.support.v7.app.AppCompatActivity;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;
import android.widget.Toast;

import com.example.cll.caolilujingdong.Bean.LoginBean;
import com.example.cll.caolilujingdong.R;
import com.example.cll.caolilujingdong.presenter.LoginPresenter;

public class LoginActivity extends AppCompatActivity implements View.OnClickListener, ILoginListener {

    private EditText mEtName;
    private EditText mEtPwd;
    /**
     * 登录
     */
    private Button mBtLogin;
    private LoginPresenter loginPresenter;
    /**
     * ×
     */
    private TextView mGuan;
    private int uid;
    private String tfoken;

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


    }

    private void initView() {
        mEtName = (EditText) findViewById(R.id.et_name);
        mEtPwd = (EditText) findViewById(R.id.et_pwd);
        mBtLogin = (Button) findViewById(R.id.bt_login);
        mBtLogin.setOnClickListener(this);
        loginPresenter = new LoginPresenter(this);
        mGuan = (TextView) findViewById(R.id.guan);
        mGuan.setOnClickListener(this);
    }

    @Override
    public void onClick(View v) {
        switch (v.getId()) {
            case R.id.bt_login:
                loginPresenter.login();
                SharedPreferences preferences = getSharedPreferences("user", Context.MODE_PRIVATE);
                SharedPreferences.Editor editor = preferences.edit();
                editor.putString("token",tfoken);
                editor.putInt("name",uid);
                editor.commit();
                break;
            case R.id.guan:
                finish();
                break;
        }
    }

    @Override
    public String mobile() {

        return mEtName.getText().toString().trim();
    }

    @Override
    public String pwd() {

        return mEtPwd.getText().toString().trim();
    }

    @Override
    public void getlogin(LoginBean bean) {
        uid = bean.getData().getUid();
        tfoken = bean.getData().getToken();
       Toast.makeText(this, bean.getMsg(), Toast.LENGTH_SHORT).show();
    }
}

IView层
package com.example.cll.caolilujingdong.view;

import com.example.cll.caolilujingdong.Bean.LoginBean;

/**
 * Created by cll on 2017/11/3.
 */

public interface ILoginListener {
    public String mobile();
    public String pwd();

    public void getlogin(LoginBean bean);
}
Adapter层

package com.example.cll.caolilujingdong.Adapter;

import android.content.Context;
import android.support.v7.widget.RecyclerView;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;

import com.example.cll.caolilujingdong.R;
import com.example.cll.caolilujingdong.Bean.ShouyeBean;
import com.facebook.drawee.view.SimpleDraweeView;

import java.util.List;

/**
 * Created by cll on 2017/11/7.
 */

public class TuijianAdapter extends RecyclerView.Adapter<RecyclerView.ViewHolder> {
    private Context context;
    private List<ShouyeBean.TuijianBean.ListBean> list;

    public TuijianAdapter(Context context, List<ShouyeBean.TuijianBean.ListBean> list) {
        this.context = context;
        this.list = list;
    }

    @Override
    public RecyclerView.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {
        View view = LayoutInflater.from(context).inflate(R.layout.tuixian, parent, false);

        return new MyAdapter(view);
    }

    @Override
    public void onBindViewHolder(RecyclerView.ViewHolder holder, int position) {
                    MyAdapter myAdapter= (MyAdapter) holder;
        String images = list.get(position).getImages();
        String[] split = images.split("\\|");
        String s = split[0];
        myAdapter.iameg.setImageURI(s);
       myAdapter.zixun.setText(list.get(position).getTitle());
        myAdapter.pirce.setText("¥"+list.get(position).getPrice());
    }

    @Override
    public int getItemCount() {
        return list.size();
    }
    class MyAdapter extends RecyclerView.ViewHolder{

        private final TextView xing;
        private final TextView zixun;
        private final TextView pirce;
        private final SimpleDraweeView iameg;

        public MyAdapter(View itemView) {
            super(itemView);
            iameg = itemView.findViewById(R.id.diantu);
            pirce = itemView.findViewById(R.id.dianpcire);
            zixun = itemView.findViewById(R.id.zixun);
            xing = itemView.findViewById(R.id.xiangsi);
        }
    }
}
还要App

package com.example.cll.caolilujingdong.Adapter;

import android.app.Application;

import com.facebook.drawee.backends.pipeline.Fresco;

/**
 * Created by cll on 2017/11/7.
 */

public class Appp extends Application {
    @Override
    public void onCreate() {
        super.onCreate();
        Fresco.initialize(this);
    }
}



  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值