简单实现京东订单功能
提示 慎重复制
1 网络权限
2 导入依赖
compile 'com.android.support:recyclerview-v7:25.1.0' compile 'com.squareup.okhttp3:okhttp:3.4.1'
导gsonjar包
3代码
主页面布局
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" xmlns:app="http://schemas.android.com/apk/res-auto" xmlns:tools="http://schemas.android.com/tools" android:layout_width="match_parent" android:layout_height="match_parent" tools:context="com.example.zhangkai20180427.MainActivity" android:orientation="vertical" > <LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="horizontal" ><TextView android:layout_width="0dp" android:layout_height="wrap_content" android:text="订单" android:layout_weight="9" android:layout_gravity="center" android:gravity="center" /> <ImageView android:layout_width="wrap_content" android:layout_height="wrap_content" android:src="@mipmap/ic_launcher" android:layout_weight="1" android:id="@+id/btn" /></LinearLayout><LinearLayout android:layout_width="match_parent" android:layout_height="wrap_content"><Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="待支付" android:id="@+id/onefu" /><Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="已支付" android:id="@+id/twofu" /><Button android:layout_width="0dp" android:layout_height="wrap_content" android:layout_weight="1" android:text="已取消" android:id="@+id/threefu" /></LinearLayout> <FrameLayout android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/fram" ></FrameLayout></LinearLayout> item布局/
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="wrap_content" android:orientation="vertical" ><RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content"><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/titledai" /><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/dai" android:layout_alignParentRight="true" /></RelativeLayout><RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp" ><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="价格 : " android:id="@+id/ll" /><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:id="@+id/pricedai" android:layout_toRightOf="@+id/ll" /> </RelativeLayout><RelativeLayout android:layout_width="match_parent" android:layout_height="wrap_content" android:layout_marginTop="20dp"><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="创建时间:" android:id="@+id/yy" /> <TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:layout_toRightOf="@+id/yy" android:id="@+id/timedai" /><Button android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="取消订单" android:layout_alignParentRight="true" android:id="@+id/btndai" /></RelativeLayout> </LinearLayout>
第一个fragment的布局///
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"><android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/recycle1" ></android.support.v7.widget.RecyclerView></LinearLayout>
第二个fragment的布局///
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"><android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/recycle2" ></android.support.v7.widget.RecyclerView> </LinearLayout>
没错 就改了个id------
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"><android.support.v7.widget.RecyclerView android:layout_width="match_parent" android:layout_height="match_parent" android:id="@+id/recycle3" ></android.support.v7.widget.RecyclerView> </LinearLayout>
弹出选择订单类型的popupwindow
<?xml version="1.0" encoding="utf-8"?> <LinearLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="wrap_content" android:layout_height="wrap_content" android:orientation="vertical" android:background="#2510eb" ><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="待支付" android:id="@+id/dai" android:textColor="#ffffff" android:padding="20dp" /><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="已支付" android:id="@+id/yifu" android:textColor="#ffffff" android:padding="20dp" /><TextView android:layout_width="wrap_content" android:layout_height="wrap_content" android:text="已取消" android:id="@+id/yixiao" android:textColor="#ffffff" android:padding="20dp" /></LinearLayout> 第一个适配器///
package com.example.zhangkai20180427.model;import com.example.zhangkai20180427.bean.SuccessBeanorderdd; import com.example.zhangkai20180427.ok.OkHttpUtilsorderdd; import com.example.zhangkai20180427.ok.OnFinishListenerorderdd; import com.google.gson.Gson;import java.util.HashMap; import java.util.Map;/** * Created by Administrator on 2018/4/27 0027. */ public class Modelorderdd implements LoginModelorderdd {@Override public void vityy(String uid, final Inside inside) {OkHttpUtilsorderdd ok= OkHttpUtilsorderdd.getInstance();Map<String,String> map=new HashMap<>();map.put("uid",uid);//请求轮播图 ok.doGet("https://www.zhaoapi.cn/product/getOrders", map,new OnFinishListenerorderdd() {@Override public void onSuccess(String result) {Gson gson=new Gson();SuccessBeanorderdd b=gson.fromJson(result,SuccessBeanorderdd.class);inside.indentsuccess(b);}@Override public void onFailed(String msg) {}});}@Override public void vityyupdate(int uid, int orderld, int status, final Inside inside) {OkHttpUtilsorderdd ok= OkHttpUtilsorderdd.getInstance();Map<String,String> map=new HashMap<>();map.put("uid",uid+"");map.put("orderld",orderld+"");map.put("status",status+"");ok.doGet("https://www.zhaoapi.cn/product/updateOrder", map,new OnFinishListenerorderdd() {@Override public void onSuccess(String result) {Gson gson=new Gson();SuccessBeanorderdd b=gson.fromJson(result,SuccessBeanorderdd.class);inside.updateorder(b.getMsg().toString());}@Override public void onFailed(String msg) {}});} }
p层接口//
package com.example.zhangkai20180427.presenter;/** * Created by Administrator on 2018/4/27 0027. */ public interface LoginPresenterorderdd {void indentuid(String uid);void updatechuan(int uid,int orderld,int status);}
p层类/
package com.example.zhangkai20180427.adapter;import android.content.Context; import android.content.DialogInterface; import android.support.v7.app.AlertDialog; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView; import android.widget.Toast;import com.example.zhangkai20180427.R; import com.example.zhangkai20180427.bean.SuccessBeanorderdd; import com.example.zhangkai20180427.presenter.LoginPresenterorderdd; import com.example.zhangkai20180427.presenter.Presenterorderdd; import com.example.zhangkai20180427.view.LoginVieworderdd;import java.util.List;/** * Created by Administrator on 2018/4/27 0027. */ public class MyAdapterorderdd1 extends RecyclerView.Adapter<MyAdapterorderdd1.ViewHolder> implements LoginVieworderdd { private Context context; private List<SuccessBeanorderdd.DataBean> list; private int Viewk_0=0; private int Viewk_1=1; private int Viewk_2=2; private int Viewk_3=3; private View view; private LoginPresenterorderdd loginpresenter;public MyAdapterorderdd1(Context context, List<SuccessBeanorderdd.DataBean> list){this.context = context;this.list=list;}/** * * @param parent * @param viewType * @return */ @Override public MyAdapterorderdd1.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {view = LayoutInflater.from(context).inflate(R.layout.itemoneorderdd,parent,false);RecyclerView.ViewHolder viewHolder = new ViewHolder(view);Log.d("aaa",viewType+"");return (ViewHolder) viewHolder;}/* 生命自己的一个事件回调接口*/ public interface OnItemClickListener{/*条目点击事件 */ void setOnItemClick(View view,int position);/*条目长按事件 */ void setOnItemLongClick(View view,int position); }private OnItemClickListener onItemClickListener;public void setOnItemClickListener(OnItemClickListener onItemClickListener){this.onItemClickListener = onItemClickListener;}@Override public void onBindViewHolder(MyAdapterorderdd1.ViewHolder holder, final int position) {loginpresenter=new Presenterorderdd(this);Log.d("uuu",list.get(position).getStatus()+"");if((list.get(position).getStatus()==0)){Log.d("ikikik",list.get(0).getPrice()+"");if(null==list.get(position).getTitle()){holder.titledai.setText("");}else{holder.titledai.setText(list.get(position).getTitle().toString());}holder.dai.setText("待支付");holder.pricedai.setText(list.get(position).getPrice()+"");holder.timedai.setText(list.get(position).getCreatetime());}//删除订单 holder.btndai.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {// 通过AlertDialog.Builder这个类来实例化我们的一个AlertDialog的对象 AlertDialog.Builder builder = new AlertDialog.Builder(context);// 设置Title的图标 builder.setIcon(R.mipmap.ic_launcher);// 设置Title的内容 builder.setTitle("注意");// 设置Content来显示一个信息 builder.setMessage("确定删除吗?");// 设置一个PositiveButton builder.setPositiveButton("确定", new DialogInterface.OnClickListener(){@Override public void onClick(DialogInterface dialog, int which){//删除当前订单 loginpresenter.updatechuan(list.get(position).getUid(),list.get(position).getOrderid(),list.get(position).getStatus());notifyDataSetChanged();}});// 设置一个NegativeButton builder.setNegativeButton("取消", new DialogInterface.OnClickListener(){@Override public void onClick(DialogInterface dialog, int which){Toast.makeText(context, "太好了", Toast.LENGTH_SHORT).show();}});// 显示出该对话框 builder.show();}});if(null != onItemClickListener) {/*回调点击事件*/ holder.itemView.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {onItemClickListener.setOnItemClick(v,position);} });holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {@Override public boolean onLongClick(View v) {onItemClickListener.setOnItemLongClick(v,position);return true;} });}}@Override public int getItemCount() {return list.size();}class ViewHolder extends RecyclerView.ViewHolder{TextView titledai;TextView dai;TextView pricedai;TextView timedai;Button btndai;public ViewHolder(View itemView) {super(itemView);titledai= itemView.findViewById(R.id.titledai);dai=itemView.findViewById(R.id.dai);pricedai=itemView.findViewById(R.id.pricedai);timedai=itemView.findViewById(R.id.timedai);btndai= itemView.findViewById(R.id.btndai);} }@Override public void indentsuccess(SuccessBeanorderdd bean) {}@Override public void indentfailed(SuccessBeanorderdd bean) {}@Override public void updateorder(String d) {Log.d("bgbgbg",d);}@Override public void updateorderfailed(String d) {} }第二个适配器//
package com.example.zhangkai20180427;import android.content.Context; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView;import com.example.zhangkai20180427.bean.SuccessBeanorderdd;import java.util.List;/** * Created by Administrator on 2018/5/2 0002. */ public class MyAdapterorderdd3 extends RecyclerView.Adapter<MyAdapterorderdd3.ViewHolder> {private Context context;private List<SuccessBeanorderdd.DataBean> list;private int Viewk_0=0;private int Viewk_1=1;private int Viewk_2=2;private int Viewk_3=3;private View view;public MyAdapterorderdd3(Context context, List<SuccessBeanorderdd.DataBean> list){this.context = context;this.list=list;}/** * * @param parent * @param viewType * @return */ @Override public MyAdapterorderdd3.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {view = LayoutInflater.from(context).inflate(R.layout.itemoneorderdd,parent,false);RecyclerView.ViewHolder viewHolder = new ViewHolder(view);Log.d("aaa",viewType+"");return (ViewHolder) viewHolder;}/* 生命自己的一个事件回调接口*/ public interface OnItemClickListener{/*条目点击事件 */ void setOnItemClick(View view,int position);/*条目长按事件 */ void setOnItemLongClick(View view,int position);}private OnItemClickListener onItemClickListener;public void setOnItemClickListener(OnItemClickListener onItemClickListener){this.onItemClickListener = onItemClickListener;}@Override public void onBindViewHolder(MyAdapterorderdd3.ViewHolder holder, final int position) {Log.d("pcpcpc",list.get(position).getStatus()+"");if((list.get(position).getStatus()==2)){Log.d("ioioio",list.get(0).getPrice()+"");if(null==list.get(position).getTitle()){holder.titledai.setText("");}else{holder.titledai.setText(list.get(position).getTitle().toString());}holder.dai.setText("已取消");holder.pricedai.setText(list.get(position).getPrice()+"");holder.timedai.setText(list.get(position).getCreatetime());}if(null != onItemClickListener) {/*回调点击事件*/ holder.itemView.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {onItemClickListener.setOnItemClick(v,position);} });holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {@Override public boolean onLongClick(View v) {onItemClickListener.setOnItemLongClick(v,position);return true;} });}}@Override public int getItemCount() {return list.size();}class ViewHolder extends RecyclerView.ViewHolder{TextView titledai;TextView dai;TextView pricedai;TextView timedai;Button btndai;public ViewHolder(View itemView) {super(itemView);titledai= itemView.findViewById(R.id.titledai);dai=itemView.findViewById(R.id.dai);pricedai=itemView.findViewById(R.id.pricedai);timedai=itemView.findViewById(R.id.timedai);btndai= itemView.findViewById(R.id.btndai);}}}
MainActivity
package com.example.zhangkai20180427;import android.graphics.Color; import android.graphics.drawable.ColorDrawable; import android.os.Bundle; import android.support.v4.app.FragmentManager; import android.support.v4.app.FragmentTransaction; import android.support.v7.app.AppCompatActivity; import android.support.v7.widget.PopupMenu; import android.view.LayoutInflater; import android.view.View; import android.widget.Button; import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.PopupWindow; import android.widget.TextView;import com.example.zhangkai20180427.fragment.Oneorderdd; import com.example.zhangkai20180427.fragment.Threeorderdd; import com.example.zhangkai20180427.fragment.Twoorderdd;public class MainActivity extends AppCompatActivity implements View.OnClickListener {private Button onefu;private Button twofu;private Button threefu;private FrameLayout fram;private Button button;private ImageView btn;private PopupMenu popupMenu;@Override protected void onCreate(Bundle savedInstanceState) {super.onCreate(savedInstanceState);setContentView(R.layout.activity_main);initView();}private void initView() {onefu = (Button) findViewById(R.id.onefu);twofu = (Button) findViewById(R.id.twofu);threefu = (Button) findViewById(R.id.threefu);fram = (FrameLayout) findViewById(R.id.fram);btn = (ImageView) findViewById(R.id.btn);onefu.setOnClickListener(this);twofu.setOnClickListener(this);threefu.setOnClickListener(this);//点击弹出pupwindow btn.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {// 用于PopupWindow的View View contentView=LayoutInflater.from(MainActivity.this).inflate(R.layout.popuporderdd, null, false);// 创建PopupWindow对象,其中: // 第一个参数是用于PopupWindow中的View,第二个参数是PopupWindow的宽度, // 第三个参数是PopupWindow的高度,第四个参数指定PopupWindow能否获得焦点 PopupWindow window=new PopupWindow(contentView,150,300, true);// 设置PopupWindow的背景 window.setBackgroundDrawable(new ColorDrawable(Color.TRANSPARENT));// 设置PopupWindow是否能响应外部点击事件 window.setOutsideTouchable(true);// 设置PopupWindow是否能响应点击事件 window.setTouchable(true);// 显示PopupWindow,其中: // 第一个参数是PopupWindow的锚点,第二和第三个参数分别是PopupWindow相对锚点的x、y偏移 window.showAsDropDown(btn,30,0);// 或者也可以调用此方法显示PopupWindow,其中: // 第一个参数是PopupWindow的父View,第二个参数是PopupWindow相对父View的位置, // 第三和第四个参数分别是PopupWindow相对父View的x、y偏移 // window.showAtLocation(parent, gravity, x, y); //设置出入动画 自定义的 window.setAnimationStyle(R.style.popup);TextView dai=contentView.findViewById(R.id.dai);TextView yifu=contentView.findViewById(R.id.yifu);TextView yixiao=contentView.findViewById(R.id.yixiao);dai.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {//onefu是其他的按钮 不在自定义popup布局中 onefu.performClick();}});yifu.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {twofu.performClick();}});yixiao.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {threefu.performClick();}});}});}@Override public void onClick(View v) {switch (v.getId()) {case R.id.onefu: //动态添加fragment //1.获得fragment的管理类 FragmentManager manager = getSupportFragmentManager();//2.开启事务 FragmentTransaction transaction = manager.beginTransaction();//3.添加fragment,第一个参数:代表容器的id 第二个参数:fragment的对象 transaction.replace(R.id.fram, new Oneorderdd());//4.提交 transaction.commit();break;case R.id.twofu://1.获得fragment的管理类 FragmentManager manager2 = getSupportFragmentManager();//2.开启事务 FragmentTransaction transaction2 = manager2.beginTransaction();//3.添加fragment,第一个参数:代表容器的id 第二个参数:fragment的对象 transaction2.replace(R.id.fram, new Twoorderdd());//4.提交 transaction2.commit();break;case R.id.threefu://1.获得fragment的管理类 FragmentManager manager3 = getSupportFragmentManager();//2.开启事务 FragmentTransaction transaction3 = manager3.beginTransaction();//3.添加fragment,第一个参数:代表容器的id 第二个参数:fragment的对象 transaction3.replace(R.id.fram, new Threeorderdd());//4.提交 transaction3.commit();break;}} }
实体类 自己建
SuccessBeanorderdd
第一个fragment //
package com.example.zhangkai20180427.fragment;import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup;import com.example.zhangkai20180427.R; import com.example.zhangkai20180427.adapter.MyAdapterorderdd1; import com.example.zhangkai20180427.bean.SuccessBeanorderdd; import com.example.zhangkai20180427.presenter.LoginPresenterorderdd; import com.example.zhangkai20180427.presenter.Presenterorderdd; import com.example.zhangkai20180427.view.LoginVieworderdd;import java.util.List;/** * Created by Administrator on 2018/4/27 0027. */ public class Oneorderdd extends Fragment implements LoginVieworderdd {private RecyclerView recycle1;private LoginPresenterorderdd loginPresenter;@Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View v= inflater.inflate(R.layout.onexmlorderdd, null);recycle1 = v.findViewById(R.id.recycle1);loginPresenter = new Presenterorderdd(this);loginPresenter.indentuid("75");return v;}@Override public void indentsuccess(SuccessBeanorderdd bean) {Log.d("vvv",bean.getMsg().toString());List<SuccessBeanorderdd.DataBean> list=bean.getData();Log.d("zzz",list.get(0).getPrice()+"");recycle1.setLayoutManager(new LinearLayoutManager(getContext(),LinearLayoutManager.VERTICAL,false));//设置分割线 recycle1.addItemDecoration(new DividerItemDecoration(getContext(),DividerItemDecoration.VERTICAL));//设置适配器 MyAdapterorderdd1 adapter = new MyAdapterorderdd1(getContext(),list);recycle1.setAdapter(adapter);Log.d("tyty","555");}@Override public void indentfailed(SuccessBeanorderdd bean) {}@Override public void updateorder(String d) {}@Override public void updateorderfailed(String d) {} } 第二个fragment//
package com.example.zhangkai20180427.fragment;import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup;import com.example.zhangkai20180427.MyAdapterorderdd2; import com.example.zhangkai20180427.R; import com.example.zhangkai20180427.bean.SuccessBeanorderdd; import com.example.zhangkai20180427.presenter.LoginPresenterorderdd; import com.example.zhangkai20180427.presenter.Presenterorderdd; import com.example.zhangkai20180427.view.LoginVieworderdd;import java.util.List;/** * Created by Administrator on 2018/4/27 0027. */ public class Twoorderdd extends Fragment implements LoginVieworderdd {private RecyclerView recycle2;private LoginPresenterorderdd loginPresenter;@Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View v= inflater.inflate(R.layout.twoxmlorderdd, null);recycle2 = v.findViewById(R.id.recycle2);loginPresenter = new Presenterorderdd(this);loginPresenter.indentuid("75");return v;}@Override public void indentsuccess(SuccessBeanorderdd bean) {Log.d("vvv",bean.getMsg().toString());List<SuccessBeanorderdd.DataBean> list=bean.getData();Log.d("zzz",list.get(0).getPrice()+"");recycle2.setLayoutManager(new LinearLayoutManager(getContext(),LinearLayoutManager.VERTICAL,false)); //设置分割线 recycle2.addItemDecoration(new DividerItemDecoration(getContext(),DividerItemDecoration.VERTICAL)); //设置适配器 MyAdapterorderdd2 adapter = new MyAdapterorderdd2(getContext(),list);recycle2.setAdapter(adapter);Log.d("tyty","555");}@Override public void indentfailed(SuccessBeanorderdd bean) {}@Override public void updateorder(String d) {}@Override public void updateorderfailed(String d) {} } 第三个fragmentment//
package com.example.zhangkai20180427.fragment;import android.os.Bundle; import android.support.annotation.Nullable; import android.support.v4.app.Fragment; import android.support.v7.widget.DividerItemDecoration; import android.support.v7.widget.LinearLayoutManager; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup;import com.example.zhangkai20180427.MyAdapterorderdd3; import com.example.zhangkai20180427.R; import com.example.zhangkai20180427.bean.SuccessBeanorderdd; import com.example.zhangkai20180427.presenter.LoginPresenterorderdd; import com.example.zhangkai20180427.presenter.Presenterorderdd; import com.example.zhangkai20180427.view.LoginVieworderdd;import java.util.List;/** * Created by Administrator on 2018/4/27 0027. */ public class Threeorderdd extends Fragment implements LoginVieworderdd {private RecyclerView recycle3;private LoginPresenterorderdd loginPresenter;@Nullable @Override public View onCreateView(LayoutInflater inflater, @Nullable ViewGroup container, @Nullable Bundle savedInstanceState) {View v= inflater.inflate(R.layout.threexmlorderdd, null);recycle3 = v.findViewById(R.id.recycle3);loginPresenter = new Presenterorderdd(this);loginPresenter.indentuid("75");return v;}@Override public void indentsuccess(SuccessBeanorderdd bean) {List<SuccessBeanorderdd.DataBean> list=bean.getData();Log.d("zzz",list.get(0).getPrice()+"");recycle3.setLayoutManager(new LinearLayoutManager(getContext(),LinearLayoutManager.VERTICAL,false));//设置分割线 recycle3.addItemDecoration(new DividerItemDecoration(getContext(),DividerItemDecoration.VERTICAL));//设置适配器 MyAdapterorderdd3 adapter = new MyAdapterorderdd3(getContext(),list);recycle3.setAdapter(adapter);}@Override public void indentfailed(SuccessBeanorderdd bean) {}@Override public void updateorder(String d) {}@Override public void updateorderfailed(String d) {}}
model层接口//
package com.example.zhangkai20180427.model;import com.example.zhangkai20180427.bean.SuccessBeanorderdd;/** * Created by Administrator on 2018/4/27 0027. */ public interface LoginModelorderdd {interface Inside{void indentsuccess(SuccessBeanorderdd bean);void indentfailed(SuccessBeanorderdd bean);void updateorder(String d);void updateorderfailed(String d);}void vityy(String uid,Inside inside);void vityyupdate(int uid,int orderld,int status,Inside inside);}
model层类
package com.example.zhangkai20180427;import android.content.Context; import android.support.v7.widget.RecyclerView; import android.util.Log; import android.view.LayoutInflater; import android.view.View; import android.view.ViewGroup; import android.widget.Button; import android.widget.TextView;import com.example.zhangkai20180427.bean.SuccessBeanorderdd;import java.util.List;/** * Created by Administrator on 2018/4/27 0027. */ public class MyAdapterorderdd2 extends RecyclerView.Adapter<MyAdapterorderdd2.ViewHolder> {private Context context;private List<SuccessBeanorderdd.DataBean> list;private int Viewk_0=0;private int Viewk_1=1;private int Viewk_2=2;private int Viewk_3=3;private View view;public MyAdapterorderdd2(Context context, List<SuccessBeanorderdd.DataBean> list){this.context = context;this.list=list;}/** * * @param parent * @param viewType * @return */ @Override public MyAdapterorderdd2.ViewHolder onCreateViewHolder(ViewGroup parent, int viewType) {view = LayoutInflater.from(context).inflate(R.layout.itemoneorderdd,parent,false);RecyclerView.ViewHolder viewHolder = new ViewHolder(view);Log.d("aaa",viewType+"");return (ViewHolder) viewHolder;}/* 生命自己的一个事件回调接口*/ public interface OnItemClickListener{/*条目点击事件 */ void setOnItemClick(View view,int position);/*条目长按事件 */ void setOnItemLongClick(View view,int position);}private OnItemClickListener onItemClickListener;public void setOnItemClickListener(OnItemClickListener onItemClickListener){this.onItemClickListener = onItemClickListener;}@Override public void onBindViewHolder(MyAdapterorderdd2.ViewHolder holder, final int position) {Log.d("pcpcpc",list.get(position).getStatus()+"");if((list.get(position).getStatus()==1)){Log.d("ioioio",list.get(0).getPrice()+"");if(null==list.get(position).getTitle()){holder.titledai.setText("");}else{holder.titledai.setText(list.get(position).getTitle().toString());}holder.dai.setText("已支付");holder.pricedai.setText(list.get(position).getPrice()+"");holder.timedai.setText(list.get(position).getCreatetime());}if(null != onItemClickListener) {/*回调点击事件*/ holder.itemView.setOnClickListener(new View.OnClickListener() {@Override public void onClick(View v) {onItemClickListener.setOnItemClick(v,position);} });holder.itemView.setOnLongClickListener(new View.OnLongClickListener() {@Override public boolean onLongClick(View v) {onItemClickListener.setOnItemLongClick(v,position);return true;} });}}@Override public int getItemCount() {return list.size();}class ViewHolder extends RecyclerView.ViewHolder{TextView titledai;TextView dai;TextView pricedai;TextView timedai;Button btndai;public ViewHolder(View itemView) {super(itemView);titledai= itemView.findViewById(R.id.titledai);dai=itemView.findViewById(R.id.dai);pricedai=itemView.findViewById(R.id.pricedai);timedai=itemView.findViewById(R.id.timedai);btndai= itemView.findViewById(R.id.btndai);}} }
第三个适配器
第三个fragment的布局///
package com.example.zhangkai20180427.presenter;import com.example.zhangkai20180427.bean.SuccessBeanorderdd; import com.example.zhangkai20180427.model.LoginModelorderdd; import com.example.zhangkai20180427.model.Modelorderdd; import com.example.zhangkai20180427.view.LoginVieworderdd;/** * Created by Administrator on 2018/4/27 0027. */ public class Presenterorderdd implements LoginPresenterorderdd,LoginModelorderdd.Inside {private LoginVieworderdd loginView;private LoginModelorderdd loginModel;public Presenterorderdd(LoginVieworderdd loginView){this.loginView=loginView;this.loginModel=new Modelorderdd();}@Override public void indentuid(String uid) {loginModel.vityy(uid,this);}@Override public void updatechuan(int uid, int orderld, int status) {loginModel.vityyupdate(uid,orderld,status,this);}@Override public void indentsuccess(SuccessBeanorderdd bean) {loginView.indentsuccess(bean);}@Override public void indentfailed(SuccessBeanorderdd bean) {loginView.indentfailed(bean);}@Override public void updateorder(String d) {loginView.updateorder(d);}@Override public void updateorderfailed(String d) {loginView.updateorderfailed(d);} } view层接口/
package com.example.zhangkai20180427.view;import com.example.zhangkai20180427.bean.SuccessBeanorderdd;/** * Created by Administrator on 2018/4/27 0027. */ public interface LoginVieworderdd {void indentsuccess(SuccessBeanorderdd bean);void indentfailed(SuccessBeanorderdd bean);void updateorder(String d);void updateorderfailed(String d); } 网络请求工具类第一个
package com.example.zhangkai20180427.ok;import android.os.Handler; import android.util.Log;import java.io.IOException; import java.util.Map; import okhttp3.Callback; import okhttp3.OkHttpClient; import okhttp3.Request; import okhttp3.Response; /** * Created by Administrator on 2018/4/27 0027. */ public class OkHttpUtilsorderdd {private static OkHttpUtilsorderdd okHttpUtils = null;private static Handler handler = new Handler();private OkHttpUtilsorderdd(){}/** * 获取当前这个类的实例 * @return */ public static OkHttpUtilsorderdd getInstance(){if(null == okHttpUtils){synchronized (OkHttpUtilsorderdd.class){if(null == okHttpUtils){okHttpUtils = new OkHttpUtilsorderdd();}}}return okHttpUtils;}/** * get请求 * @param path * @param map */ public void doGet(String path, Map<String,String> map, final OnFinishListenerorderdd onFinishListener){StringBuilder sb = null;for (String key : map.keySet()) {//login?name=124e3434&p=ere if(null == sb){sb = new StringBuilder();sb.append("?");}else{sb.append("&");}//拼接参数 sb.append(key).append("=").append(map.get(key));}OkHttpClient okHttpClient = new OkHttpClient();/* //应用拦截器 OkHttpClient okHttpClient1=new OkHttpClient.Builder() .addInterceptor(new CommonParamsinterceptor()) .build();*/ final Request request = new Request.Builder().url(path+sb.toString()).get().build();Log.d("gggg",path+sb.toString());okhttp3.Call call = okHttpClient/*使用拦截器此处需要换上拦截器名*/.newCall(request);call.enqueue(new Callback() {public void onFailure(okhttp3.Call call, final IOException e) {//在子线程 handler.post(new Runnable() {@Override public void run() {onFinishListener.onFailed(e.getMessage());}});}public void onResponse(okhttp3.Call call, final Response response) throws IOException {final String result = response.body().string();handler.post(new Runnable() {@Override public void run() {try {onFinishListener.onSuccess(result);} catch (Exception e) {e.printStackTrace();}}});}});} }
网络请求工具类第二个/
package com.example.zhangkai20180427.ok;/** * Created by Administrator on 2018/4/27 0027. */ public interface OnFinishListenerorderdd {void onSuccess(String result);void onFailed(String msg);}
简单实现京东订单功能相关推荐
- 从头认识Spring-3.4 简单的AOP日志实现-扩展添加检查订单功能,以便记录并检測输入的參数...
这一章节我们再上一个章节的基础上加上一个检查订单功能 1.domain 蛋糕类: package com.raylee.my_new_spring.my_new_spring.ch03.topic_1 ...
- 如何使用python编程抢京东优惠券 知乎_小猿圈Python之实现京东秒杀功能技巧
现在电商盛起,活动页面一个接着一个,一般都是抢购.秒杀,看着很刺激吧,这篇文章小猿圈加加就揭开这些秒杀功能的面纱,带你们看看实际的面貌,让我们学习一下代码吧. #Python3.5 #coding:u ...
- 订单功能模块设计与实现
https://www.cnblogs.com/fengli9998/p/6417117.html 在商城项目中,之前我们介绍了购物车功能模块的实现,商品加入到购物车之后,就是到购物车结算,然后显示购 ...
- 关于订单功能的处理和分析
这两天看了一下RABC的权限管理处理,梳理了一下订单功能的表创建,界面,功能分析. 目录 RABC RBAC0模型 那么对于RABC模型我们怎么创建数据库表? 订单模块的梳理 RABC RABC说的是 ...
- 利用Solrj技术+SSM框架完成仿京东搜索功能
完成该功能的前提是配置好Solr服务器,这一部分内容可以参考博主上一篇的内容:基于Lucene的全文搜索服务器solr 一.利用Solrj技术+SSM框架完成仿京东搜索功能 1.如果不想配置solr服 ...
- 应用金数据在线订单功能 为中小企业带来真正价值
云计算.移动互联网.物联网的时代,如何让大数据落地,如何采用大数据更好的为销售和经营管理服务,是每个企业管理者都在思考的问题. 新出现的企业.个人数据应用工具--金数据是一个轻态的表单设计和数据收集工 ...
- 微信小程序:实现简单的拼券功能(uniCloud)
使用uniCloud实现了一个简单的拼券功能,整个需求与京东的拼券和拼多多的砍一刀类似. 分享方: 分享优惠券信息,请好友帮忙助力(授权登录后可操作) 若邀请人数不足,则提示还差多少人 若邀请人数满足 ...
- php京东秒杀,小猿圈Python之实现京东秒杀功能技巧
现在电商盛起,活动页面一个接着一个,一般都是抢购.秒杀,看着很刺激吧,这篇文章小猿圈加加就揭开这些秒杀功能的面纱,带你们看看实际的面貌,让我们学习一下代码吧. 实例 #Python3.5 #codin ...
- python抢茅台_python实现简单淘宝秒杀功能
本文实例为大家分享了Python淘宝秒杀的具体代码,供大家参考,具体内容如下 昨天茅台在线上搞秒杀,本来想着靠我惊人的手速去秒一瓶,结果.... 所以痛定思痛,想想还是用脚本更靠谱.就在网上搜啊搜,看 ...
最新文章
- 你真的了解 lambda 吗(纠错篇)?
- 静态方法与单例模式的区别以及为什么要用单例模式而不是静态方法
- 【数据结构与算法】之深入解析“旋转链表”的求解思路与算法示例
- word2003文档题注
- JNI调用两层C++动态库
- php 增加数组下标_PHP数组排序更改下标KEY方法
- Vscode 调试:跟踪局部变量的变化
- linux shell脚本判断文件或文件夹是否存在循环操作
- 关于http-server的备选方案-- browser-sync
- 编译thrift和使用 - 翱翔云颠的博客 - 我的搜狐
- 计算机辅助翻译课程用书,计算机辅助翻译本科课程教学大纲翻译本科
- Visual C++ 6.0(完整绿色版)安装及Visual Assist X(西红柿插件、番茄插件)
- MeScroll 移动端刷新,分页
- 计算n阶行列式的C语言实现
- 人民币利率互换小幅上行,通胀不乐观致紧缩预期趋浓_183
- Linux中的Vi编辑器末行模式操作指令
- Verilog语言初学1
- SpringBoot -> 自动装配初探,debug=ture判断配置类是否生效
- 单片机的AVCC、AVSS、DVCC、DVSS引脚有何区别?
- JAVA与C、C++比较