登陆注册,商品
来源:互联网 发布: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); } }); }}——————————————————————————————————————————————————————————
GoodsPresenterpackage 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(); }}————————————————————————————————————————————————————————————————————————————
RegPresenterpackage 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() { }}
阅读全文
0 0
- 登陆注册,商品
- Andriodjie——登陆注册展示商品
- 注册商品
- 登陆、注册
- 登陆注册
- 登陆注册
- 登陆注册
- 整合SSH--登陆注册
- 登陆、注册小制作
- 项目开发登陆注册
- Zendframework登陆注册实例教程
- webpy注册登陆
- android登陆注册
- APP_注册和登陆
- SSH2注册登陆
- 创建登陆注册UITextField
- QQ登陆注册
- 数据库注册登陆练习
- 线程通讯和同步的两种实现方…
- markdown编辑器 使用方法
- hashCode()方法的作用
- java中的堆、栈和常量池
- 分包图片
- 登陆注册,商品
- Java实现通过服务器实现客户端之间的简单群聊
- getWriter() has already been called for this response异常(100%解决)
- 淘淘商城商品类目选择的实现
- OS X系统下使用homebrew来安装python及pygame
- 第十二周 【项目
- 深度学习中的五大正则化方法和七大优化策略
- 什么是CXF
- scikit-learn学习之SVM算法