登陆注册,商品

来源:互联网 发布:linux 查看压缩包类型 编辑:程序博客网 时间:2024/05/21 06:40
GoodsModel


package bwie.com.zhoukao2.model;import com.google.gson.Gson;import java.io.IOException;import java.util.Map;import bwie.com.zhoukao2.model.bean.GoodsBean;import bwie.com.zhoukao2.model.inter.IGoodsView;import bwie.com.zhoukao2.util.OkHttpUtil;import okhttp3.Call;import okhttp3.Callback;import okhttp3.Response;/** * Created by lenovo on 2017/12/11. */public class GoodsModel {    private IGoodsView iGoodView;    public GoodsModel(IGoodsView iGoodsView){        this.iGoodView=iGoodsView;    }    public void postGoodsData(String url, Map<String,String> params){       OkHttpUtil.post(url,params, new Callback() {           @Override           public void onFailure(Call call, IOException e) {               iGoodView.onError();           }           @Override           public void onResponse(Call call, Response response) throws IOException {               Gson gson = new Gson();               GoodsBean goodsBean = gson.fromJson(response.body().string(), GoodsBean.class);               iGoodView.onSuccess(goodsBean);           }       });    }}
——————————————————————————————————————————————————————————————————————————

LoginModel
package bwie.com.zhoukao2.model;import com.google.gson.Gson;import java.io.IOException;import java.util.Map;import bwie.com.zhoukao2.model.bean.LoginBean;import bwie.com.zhoukao2.model.inter.ILoginView;import bwie.com.zhoukao2.util.OkHttpUtil;import okhttp3.Call;import okhttp3.Callback;import okhttp3.Response;/** * Created by lenovo on 2017/12/11. */public class LoginModel {    private ILoginView iLoginView;    public LoginModel(ILoginView iLoginView){        this.iLoginView=iLoginView;    }    public void postLoginData(String url, Map<String,String> params){        OkHttpUtil.post(url,params, new Callback() {            @Override            public void onFailure(Call call, IOException e) {                iLoginView.onError();            }            @Override            public void onResponse(Call call, Response response) throws IOException {                Gson gson = new Gson();                LoginBean loginBean = gson.fromJson(response.body().string(), LoginBean.class);                iLoginView.onSuccess(loginBean);            }        });    }}

——————————————————————————————————————————————————————————————

RegModel

package bwie.com.zhoukao2.model;import com.google.gson.Gson;import java.io.IOException;import java.util.Map;import bwie.com.zhoukao2.model.bean.RegBean;import bwie.com.zhoukao2.model.inter.IRegView;import bwie.com.zhoukao2.util.OkHttpUtil;import okhttp3.Call;import okhttp3.Callback;import okhttp3.Response;/** * Created by lenovo on 2017/12/11. */public class RegModel {    private IRegView iRegView;    public RegModel(IRegView iRegView){        this.iRegView=iRegView;    }    public void postRegData(String url, Map<String,String> params){        OkHttpUtil.post(url,params, new Callback() {            @Override            public void onFailure(Call call, IOException e) {                iRegView.onError();            }            @Override            public void onResponse(Call call, Response response) throws IOException {                Gson gson = new Gson();                RegBean regBean = gson.fromJson(response.body().string(), RegBean.class);                iRegView.onSuccess(regBean);            }        });    }}
——————————————————————————————————————————————————————————

GoodsPresenter
package bwie.com.zhoukao2.presenter;import java.util.Map;import bwie.com.zhoukao2.model.GoodsModel;import bwie.com.zhoukao2.model.bean.GoodsBean;import bwie.com.zhoukao2.model.inter.IGoodsView;/** * Created by lenovo on 2017/12/11. */public class GoodsPresenter implements IGoodsView {    private GoodsModel goodsModel;    private IGoodsView iGoodsView;    public GoodsPresenter(IGoodsView iGoodsView){        this.iGoodsView=iGoodsView;        this.goodsModel=new GoodsModel(this);    }    public void postGoodsData(String url, Map<String ,String> params){        goodsModel.postGoodsData(url,params);    }    @Override    public void onSuccess(GoodsBean goodsBean) {        iGoodsView.onSuccess(goodsBean);    }    @Override    public void onError() {        iGoodsView.onError();    }}
————————————————————————————————————————
LoginPresenter

package bwie.com.zhoukao2.presenter;import java.util.Map;import bwie.com.zhoukao2.model.LoginModel;import bwie.com.zhoukao2.model.bean.LoginBean;import bwie.com.zhoukao2.model.inter.ILoginView;/** * Created by lenovo on 2017/12/11. */public class LoginPresenter implements ILoginView {    private ILoginView iLoginView;    private LoginModel loginModel;    public LoginPresenter(ILoginView iLoginView){        this.iLoginView=iLoginView;        loginModel = new LoginModel(this);    }    public void postLoginData(String url,Map<String, String> params){        loginModel.postLoginData(url,params);    }    @Override    public void onSuccess(LoginBean jsonObject) {        iLoginView.onSuccess(jsonObject);    }    @Override    public void onError() {        iLoginView.onError();    }}
————————————————————————————————————————————————————————————————————————————

RegPresenter
package bwie.com.zhoukao2.presenter;import java.util.Map;import bwie.com.zhoukao2.model.RegModel;import bwie.com.zhoukao2.model.bean.RegBean;import bwie.com.zhoukao2.model.inter.IRegView;/** * Created by lenovo on 2017/12/11. */public class RegPresenter implements IRegView {    private IRegView iRegView;    private RegModel regModel;    public RegPresenter(IRegView iRegView){        this.iRegView=iRegView;        this.regModel=new RegModel(this);    }    public void postRegData(String url, Map<String, String> params){        regModel.postRegData(url,params);    }    @Override    public void onSuccess(RegBean jsonObject) {        iRegView.onSuccess(jsonObject);    }    @Override    public void onError() {        iRegView.onError();    }}
————————————————————————————————————————————————————————
GoodsListActivity
package bwie.com.zhoukao2.view;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.support.v7.widget.LinearLayoutManager;import android.view.View;import android.widget.ImageView;import com.androidkun.PullToRefreshRecyclerView;import com.androidkun.callback.PullToRefreshListener;import java.util.ArrayList;import java.util.HashMap;import java.util.List;import java.util.Map;import bwie.com.zhoukao2.R;import bwie.com.zhoukao2.model.bean.GoodsBean;import bwie.com.zhoukao2.model.inter.IGoodsView;import bwie.com.zhoukao2.presenter.GoodsPresenter;import bwie.com.zhoukao2.util.Api;public class GoodsListActivity extends AppCompatActivity implements IGoodsView, PullToRefreshListener {    private GoodsPresenter goodsPresenter;    private ImageView iv;    private PullToRefreshRecyclerView prv;    private int pageNum=1;    private List<GoodsBean.DataBean> dataBeens=new ArrayList<>();    private ListViewAdapter adapter;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_goods_list);        goodsPresenter = new GoodsPresenter(this);        iv = (ImageView) findViewById(R.id.iv);        prv = (PullToRefreshRecyclerView) findViewById(R.id.prv);        iv.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                finish();            }        });        Map<String,String> params=new HashMap<>();        params.put("pscid","39");        params.put("page", String.valueOf(pageNum));        goodsPresenter.postGoodsData(Api.SHANGPIN_URL,params);        prv.setLayoutManager(new LinearLayoutManager(GoodsListActivity.this,LinearLayoutManager.VERTICAL,false));        prv.setPullRefreshEnabled(true);        prv.setLoadingMoreEnabled(true);        prv.displayLastRefreshTime(true);        prv.setPullToRefreshListener(this);    }    @Override    public void onSuccess(final GoodsBean goodsBean) {        runOnUiThread(new Runnable() {            @Override            public void run() {                List<GoodsBean.DataBean> data = goodsBean.getData();                if ("1".equals(goodsBean.getPage())){                    dataBeens.addAll(0,data);                    prv.setRefreshComplete();                }else {                    dataBeens.addAll(data);                    prv.setLoadMoreComplete();                }                setAdapter();            }        });    }    private void setAdapter() {        if (adapter==null) {            adapter = new ListViewAdapter(this, dataBeens);            prv.setAdapter(adapter);        } else {            adapter.notifyDataSetChanged();        }    }    @Override    public void onError() {    }    @Override    public void onRefresh() {        Map<String,String> params=new HashMap<>();        params.put("pscid","39");        params.put("page", "1");        goodsPresenter.postGoodsData(Api.SHANGPIN_URL,params);    }    @Override    public void onLoadMore() {        pageNum++;        Map<String,String> params=new HashMap<>();        params.put("pscid","39");        params.put("page", String.valueOf(pageNum));        goodsPresenter.postGoodsData(Api.SHANGPIN_URL,params);    }}

——————————————————————————————————————————————————
ListViewAdapter
package bwie.com.zhoukao2.view;import android.content.Context;import android.graphics.Color;import android.support.v7.widget.RecyclerView;import android.view.LayoutInflater;import android.view.View;import android.view.ViewGroup;import com.bumptech.glide.Glide;import java.util.List;import bwie.com.zhoukao2.R;import bwie.com.zhoukao2.model.bean.GoodsBean;/** * Created by lenovo on 2017/12/11. */public class ListViewAdapter extends RecyclerView.Adapter<MyListView>{    private List<GoodsBean.DataBean> data;    private Context context;    public ListViewAdapter(Context context, List<GoodsBean.DataBean> data) {        this.context = context;        this.data = data;    }    @Override    public MyListView onCreateViewHolder(ViewGroup parent, int viewType) {        View view = LayoutInflater.from(context).inflate(R.layout.list_view, parent, false);        MyListView mlv = new MyListView(view);        return mlv;    }    @Override    public void onBindViewHolder(MyListView holder, int position) {        //设置数据//        图片加载:Universal-Image-Loader或Glide图片加载框架        Glide.with(context)                .load(data.get(position).getImages().split("\\|")[0])                .placeholder(R.mipmap.ic_launcher)                .error(R.mipmap.ic_launcher)                .into(holder.iv);        holder.tv1.setText(data.get(position).getTitle());        holder.tv2.setText("原价"+data.get(position).getPrice());        holder.tv3.setText("优惠价"+data.get(position).getBargainPrice());        holder.tv3.setTextColor(Color.RED);    }    @Override    public int getItemCount() {        return data.size();    }}
————————————————————————————————————————————

MainActivity

package bwie.com.zhoukao2.view;import android.content.Intent;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.EditText;import android.widget.Toast;import java.util.HashMap;import java.util.Map;import bwie.com.zhoukao2.R;import bwie.com.zhoukao2.model.bean.LoginBean;import bwie.com.zhoukao2.model.inter.ILoginView;import bwie.com.zhoukao2.presenter.LoginPresenter;import bwie.com.zhoukao2.util.Api;public class MainActivity extends AppCompatActivity implements ILoginView{    private EditText et_phone;    private EditText et_pwd;    private LoginPresenter presenter;    private String regex;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_main);        et_phone = (EditText) findViewById(R.id.et_phone);        et_pwd = (EditText) findViewById(R.id.et_pwd);        regex = "^((13[0-9])|(14[5|7])|(15([0-3]|[5-9]))|(18[0,5-9]))\\d{8}$";        presenter = new LoginPresenter(this);    }    //注册    public void regist(View view) {        Intent intent = new Intent(this, RegActivity.class);        startActivity(intent);    }    //登陆    // 2.  实现手机号和验证码本地校验功能(包括空判断、手机号码采用正则表达式校验,符合手机号码规范、密码不能少于6位数、不能有特殊字符)    public void login(View view) {        String phone=et_phone.getText().toString();        String pwd=et_pwd.getText().toString();        Map<String, String> params = new HashMap<>();        params.put("mobile", phone);        params.put("password", pwd);        presenter.postLoginData(Api.LOGIN_URL,params);    }    @Override    public void onSuccess(final LoginBean loginBean) {        runOnUiThread(new Runnable() {            @Override            public void run() {                Toast.makeText(MainActivity.this,loginBean.getMsg(),Toast.LENGTH_SHORT).show();                    //                        3.   实现登录接口和注册接口,成功后用toast提示;                if ("0".equals(loginBean.getCode())){                    Intent intent=new Intent(MainActivity.this,GoodsListActivity.class);                    startActivity(intent);                }            }        });    }    @Override    public void onError() {    }}/*1.项目框架模式:MVP2. 创建登录和注册页面Activity类,实现如图1整体视图效果3. 注册成功后跳转到登录页面进行登录逻辑4. 登录成功后跳转到商品列表页面5. 实现手机号和验证码本地校验功能(包括空判断、手机号码采用正则表达式校验,符合手机号码规范、密码不能少于6位数、不能有特殊字符);6. 实现登录接口和注册接口,成功后用toast提示7.实现商品列表页面效果和接口,页面视图元素不能遗漏8.网络加载框架:OkHttp,进行二次封装,OkhttpClient实现单例模式,封装简单的get和post请求方法 */
——————————————————————————————————————————————————————————————————————————

MyListView
package bwie.com.zhoukao2.view;import android.support.v7.widget.RecyclerView;import android.view.View;import android.widget.ImageView;import android.widget.TextView;import bwie.com.zhoukao2.R;/** * Created by lenovo on 2017/12/11. */public class MyListView extends RecyclerView.ViewHolder {    public ImageView iv;    public TextView tv1;    public TextView tv2;    public TextView tv3;    public MyListView(View view) {        super(view);        iv = (ImageView) itemView.findViewById(R.id.iv);        tv1 = (TextView) itemView.findViewById(R.id.tv1);        tv2 = (TextView) itemView.findViewById(R.id.tv2);        tv3 = (TextView) itemView.findViewById(R.id.tv3);    }}
——————————————————————————————————————————————————————————

RegActivity

package bwie.com.zhoukao2.view;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.EditText;import android.widget.ImageView;import android.widget.Toast;import java.util.HashMap;import java.util.Map;import bwie.com.zhoukao2.R;import bwie.com.zhoukao2.model.bean.RegBean;import bwie.com.zhoukao2.model.inter.IRegView;import bwie.com.zhoukao2.presenter.RegPresenter;import bwie.com.zhoukao2.util.Api;public class RegActivity extends AppCompatActivity implements IRegView{    private RegPresenter presenter;    private EditText et_phone;    private EditText et_pwd;    private ImageView iv;    @Override    protected void onCreate(Bundle savedInstanceState) {        super.onCreate(savedInstanceState);        setContentView(R.layout.activity_reg);        iv = (ImageView) findViewById(R.id.iv);        et_phone = (EditText) findViewById(R.id.et_phone);        et_pwd = (EditText) findViewById(R.id.et_pwd);        presenter = new RegPresenter(this);        iv.setOnClickListener(new View.OnClickListener() {            @Override            public void onClick(View view) {                finish();            }        });    }    public void reg(View view) {        String phone=et_phone.getText().toString();        String pwd=et_pwd.getText().toString();        Map<String, String> params = new HashMap<>();        params.put("mobile", phone);        params.put("password", pwd);        presenter.postRegData(Api.REG_URL,params );    }    // 2.  实现手机号和验证码本地校验功能(包括空判断、手机号码采用正则表达式校验,符合手机号码规范、密码不能少于6位数、不能有特殊字符)    @Override    public void onSuccess(final RegBean regBean) {        runOnUiThread(new Runnable() {            @Override            public void run() {//          3. 实现登录接口和注册接口,成功后用toast提示;                Toast.makeText(RegActivity.this,regBean.getMsg(),Toast.LENGTH_SHORT).show();                if ("0".equals(regBean.getCode())){                    finish();                }            }        });    }    @Override    public void onError() {    }}

原创粉丝点击