Andriodjie——登陆注册展示商品
来源:互联网 发布:淘宝黄蓉代购是真的吗 编辑:程序博客网 时间:2024/05/18 00:37
Mvp模式为架构,从网络获取数据进行登录注册的功能,并展示商品信息
从上往下一次编辑
/*
*INetDataModel
*/
public interface INetDataModel { public String loadData(String urlPath);}
/*
*MyNetDataModel
*/
public class MyNetDataModel implements INetDataModel { @Override public String loadData(String urlPath) { String s = NetUTils.loadData(urlPath); return s; }}
/*
*NetUTils
*/
public class NetUTils { public static void loadImage(Context context , String url , ImageView view){ Glide.with(context) .load(url) .into(view); } public static String loadData(String urlPath){ try { URL url = new URL(urlPath); HttpURLConnection urlconnect = (HttpURLConnection) url.openConnection(); urlconnect.setRequestMethod("GET"); urlconnect.setConnectTimeout(5000); urlconnect.setReadTimeout(5000); if(urlconnect.getResponseCode() == 200){ InputStream is = urlconnect.getInputStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { int len; byte[] b = new byte[1024]; while( (len = is.read(b)) != -1 ){ baos.write(b,0,len); } } catch (IOException e) { e.printStackTrace(); } System.out.println("LoadData = "+baos.toString()); return baos.toString(); } } catch (Exception e) { e.printStackTrace(); } return null; }}
/**MyNetDataPresenter
*/
public class MyNetDataPresenter { private Context context; private INetDataView iNetDataView; private INetDataModel iNetDataModel; public MyNetDataPresenter(Context context, INetDataView iNetDataView) { this.context = context; this.iNetDataView = iNetDataView; iNetDataModel = new MyNetDataModel(); } public void loadDataFrmoNet(){ new AsyncTask<String,Void,String>(){ @Override protected void onPostExecute(String s) { super.onPostExecute(s); if(s != null){ Gson gson = new Gson(); ShangPinBean shangPinBean = gson.fromJson(s, ShangPinBean.class); List<ShangPinBean.DataBean.DefaultGoodsListBean> defaultGoodsList = shangPinBean.getData().getDefaultGoodsList(); iNetDataView.setDataInShang(defaultGoodsList); } } @Override protected String doInBackground(String... strings) { String s = iNetDataModel.loadData("http://m.yunifang.com/yunifang/mobile/home"); return s; } }.execute(); }}
/**INetDataView
*/
public interface INetDataView { public void setDataInShang(List<ShangPinBean.DataBean.DefaultGoodsListBean> defaultGoodsList);}
/**GeRenActivity
*/public class GeRenActivity extends AppCompatActivity { private SharedPreferences sp; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_ge_ren); sp = getSharedPreferences("MyLogin",MODE_PRIVATE); } public void geren_shanpin(View view){ startActivity(new Intent(GeRenActivity.this,ShangPinActivity.class)); }}
/**首页登录注册
*/import android.content.Intent;import android.content.SharedPreferences;import android.os.Bundle;import android.support.v7.app.AppCompatActivity;import android.view.View;import android.widget.EditText;import android.widget.Toast;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import okhttp3.FormBody;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.RequestBody;import okhttp3.Response;public class MainActivity extends AppCompatActivity { private EditText main_zhangaho,mian_mima; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); main_zhangaho = (EditText) findViewById(R.id.main_ed_zhanghao); mian_mima = (EditText) findViewById(R.id.main_ed_mima); } public void main_login(View view){ if(main_zhangaho != null && mian_mima != null){ if(main_zhangaho.length() != 11){ Toast.makeText(this, "请输入是一位手机号", Toast.LENGTH_SHORT).show(); }else{ MyLogin(); } } } private void MyLogin() { new Thread(){ @Override public void run() { super.run(); try { OkHttpClient okHttpClient = new OkHttpClient(); RequestBody formBody = new FormBody.Builder().add("mobile", main_zhangaho.getText().toString()) .add("password", mian_mima.getText().toString()) .build(); Request request = new Request.Builder().url("http://120.27.23.105/user/login") .post(formBody) .build(); Response jsonStr = okHttpClient.newCall(request).execute(); InputStream is = jsonStr.body().byteStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { int len; byte[] b = new byte[1024]; while( (len = is.read(b)) != -1 ){ baos.write(b,0,len); } } catch (IOException e) { e.printStackTrace(); } SharedPreferences sp = getSharedPreferences("MyLogin",MODE_PRIVATE); sp.edit().putString("MyLogin",baos.toString()).commit(); System.out.println("login ====== "+baos.toString()); if(jsonStr.code() == 200){ startActivity(new Intent(MainActivity.this,GeRenActivity.class)); } } catch (IOException e) { e.printStackTrace(); } } }.start(); } public void main_zhuce(View view){ startActivity(new Intent(MainActivity.this,ZhuCeActivity.class)); }}/**注册页面
*/import android.support.v7.app.AppCompatActivity;import android.os.Bundle;import android.view.View;import android.widget.EditText;import android.widget.Toast;import java.io.ByteArrayOutputStream;import java.io.IOException;import java.io.InputStream;import okhttp3.FormBody;import okhttp3.OkHttpClient;import okhttp3.Request;import okhttp3.RequestBody;import okhttp3.Response;public class ZhuCeActivity extends AppCompatActivity { EditText zhuce_mima,zhuce_zhang; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_zhu_ce); zhuce_mima = (EditText) findViewById(R.id.zhuce_mima); zhuce_zhang = (EditText) findViewById(R.id.zhuce_zhang); } public void zhuce_zhuce(View view){ if(zhuce_mima != null && zhuce_zhang != null){ if(zhuce_zhang.length() == 11){ zhuceUser(); }else{ Toast.makeText(this, "请输入11为手机号", Toast.LENGTH_SHORT).show(); } }else{ Toast.makeText(this, "不能为空", Toast.LENGTH_SHORT).show(); } } private void zhuceUser() { new Thread(){ @Override public void run() { super.run(); try { OkHttpClient okHttpClient = new OkHttpClient(); RequestBody formBody = new FormBody.Builder().add("mobile", zhuce_zhang.getText().toString()) .add("password", zhuce_mima.getText().toString()) .build(); Request request = new Request.Builder().url("http://120.27.23.105/user/reg") .post(formBody) .build(); Response jsonStr = okHttpClient.newCall(request).execute(); InputStream is = jsonStr.body().byteStream(); ByteArrayOutputStream baos = new ByteArrayOutputStream(); try { int len; byte[] b = new byte[1024]; while( (len = is.read(b)) != -1 ){ baos.write(b,0,len); } } catch (IOException e) { e.printStackTrace(); } System.out.println("zhuce ====== "+baos.toString()); if(jsonStr.code() == 200){ finish(); } } catch (IOException e) { e.printStackTrace(); } } }.start(); }}/**展示商品
*/public class ShangPinActivity extends AppCompatActivity { private ShangPinBean bean; private EditText sousuo; private RecyclerView recyclerView; private MyRecyclerViewAdapter myRecyclerViewAdapter; private Handler hand = new Handler(){ @Override public void handleMessage(Message msg) { super.handleMessage(msg); String s = (String) msg.obj; Gson gson=new Gson(); bean=gson.fromJson(s,ShangPinBean.class); myRecyclerViewAdapter=new MyRecyclerViewAdapter(ShangPinActivity.this,bean); recyclerView.setAdapter(myRecyclerViewAdapter); } }; @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_shang_pin); // sousuo = (EditText) findViewById(R.id.sou); recyclerView=(RecyclerView)findViewById(R.id.myRecycler); GridLayoutManager linear=new GridLayoutManager(ShangPinActivity.this,1); recyclerView.setLayoutManager(linear); OkHttpClient mOkHttpClient = new OkHttpClient(); //创建一个Request Request request = new Request.Builder() .url("http://m.yunifang.com/yunifang/mobile/home") .build(); System.out.println(request+"xxxxxxxxxxxx"); mOkHttpClient.newCall(request).enqueue(new Callback() { @Override public void onFailure(Call call, IOException e) { } @Override public void onResponse(Call call, Response response) throws IOException { InputStream inputStream = response.body().byteStream(); final ByteArrayOutputStream baos = new ByteArrayOutputStream(); int i; final byte[] b = new byte[1024]; while( (i = inputStream.read(b)) != -1 ){ baos.write(b,0,i); } Message msg = Message.obtain(); msg.obj = baos.toString(); hand.sendMessage(msg); } }); }// public void qiehuan(View v){// recyclerView.setLayoutManager(new GridLayoutManager(ShangPinActivity.this,2));// myRecyclerViewAdapter.notifyDataSetChanged();// } class MyRecyclerViewAdapter extends RecyclerView.Adapter<MyRecyclerViewAdapter.MyHolder>{ private Context context; private ShangPinBean bean; public MyRecyclerViewAdapter(Context context, ShangPinBean bean) { this.context = context; this.bean = bean; } @Override public MyHolder onCreateViewHolder(ViewGroup parent, int viewType) { MyHolder myHolder=new MyHolder(View.inflate(ShangPinActivity.this,R.layout.item1,null)); System.out.println("xxxx"+myHolder); return myHolder; } @Override public void onBindViewHolder(MyHolder holder, int position) { holder.item1_title.setText(bean.getData().getDefaultGoodsList().get(position).getGoods_name()); holder.item1_price.setText(""+(int) bean.getData().getDefaultGoodsList().get(position).getShop_price()); NetUTils.loadImage(ShangPinActivity.this,bean.getData().getDefaultGoodsList().get(position).getGoods_img(),holder.item1_iamge); } @Override public int getItemCount() { return bean.getData().getDefaultGoodsList().size(); } public class MyHolder extends RecyclerView.ViewHolder { final TextView item1_title; final TextView item1_price; final ImageView item1_iamge; public MyHolder(View itemView) { super(itemView); item1_title = (TextView) itemView.findViewById(R.id.item1_title); item1_price = (TextView) itemView.findViewById(R.id.item1_price); item1_iamge=(ImageView) itemView.findViewById(R.id.item1_iamge); } } }}
阅读全文
0 0
- Andriodjie——登陆注册展示商品
- Andriodjie——RecyclerView点击查看商品详情
- andriodjie——MVP加RecycleView简单展示
- 案例—商品展示
- andriodjie——recycleview
- 登陆注册,商品
- andriodjie——mvp展示拦截器传来的数据跳转购物车
- 商品展示——案例
- 案例——商品展示
- SQLite数据库——案例:商品展示
- 实验:Android案例——商品展示
- shu数据库操作——商品展示
- Andriodjie——画圆3秒跳转
- Andriodjie——OKhttp拦截器
- Andriodjie——自定义头布局
- andriodjie——实现小圆点
- 商品展示——增、删、改、查
- 商品展示——实体类和适配器的创建
- 4.3
- html/jsp如何固定图像的大小
- 守着再也没有的你
- Android四大组件
- MyBatis之基础入门
- Andriodjie——登陆注册展示商品
- qt QAxObject word文档添加页码(页眉和页脚)
- C语言中强类型&弱类型
- ssh-server配置文件参数PermitRootLogin介绍
- 微信小程序API之网络(一)发起请求
- pom详解
- Word 从任意页开始设置页码
- 手动抛出异常
- ROS自定义msg类型以及使用