工具类
public class NetWorkManager {
/**
* 单例模式
*/
private static NetWorkManager netWorkManager=new NetWorkManager();
private Retrofit retrofit;
private NetWorkManager(){
init();
}
public static NetWorkManager getNetWorkManager() {
synchronized (netWorkManager){
if (netWorkManager==null){
netWorkManager=new NetWorkManager();
}
return netWorkManager;
}
}
private void init(){
/**
* 拦截器
*/
OkHttpClient okHttpClient=new OkHttpClient.Builder()
.addInterceptor(new HttpLoggingInterceptor())
.connectTimeout(6,TimeUnit.SECONDS)
.writeTimeout(10,TimeUnit.SECONDS)
.readTimeout(6,TimeUnit.SECONDS)
.build();
retrofit = new Retrofit
.Builder()
.baseUrl(HttpConfig.base_url)
.addCallAdapterFactory(RxJava2CallAdapterFactory.create())
.addConverterFactory(GsonConverterFactory.create())
.client(okHttpClient)
.build();
}
public <T> T create(final Class<T> service) {
return retrofit.create(service);
}
}
IRquest
public interface IRequest {
/**
* 登录
* @param phone
* @param pwd
* @return
*/
@POST("login")
@FormUrlEncoded
Observable<ILogin<Login>> getlogin(@Field("phone") String phone,@Field("pwd")String pwd);
/**
* 注册
* @param phone
* @param pwd
* @return
*/
@POST("register")
@FormUrlEncoded
Observable<ILogin<Login>> getregister(@Field("phone") String phone,@Field("pwd") String pwd);
/**
* 首页轮播
* @return
*/
@GET("commodity/v1/bannerShow")
Observable<Result<List<Banners>>> getbanners();
/**
* 首页数据
* @return
*/
@GET("commodity/v1/commodityList")
Observable<Result<HomeList>> gethomes();
/**
* 关键词查询数据
* @return
*/
@GET("commodity/v1/findCommodityByKeyword")
Observable<Querys> getquery(@Query("keyword") String keyword, @Query("page") String page, @Query("count") String count);
/**
* 商品详情
* @return
*/
@GET("commodity/v1/findCommodityDetailsById")
Observable<Details> getdetails(@Header("userId")String userId, @Header("sessionId")String sessionId,
@Query("commodityId")int commodityId);
/**
* 圈子数据
* @return
*/
@GET("circle/v1/findCircleList")
Observable<Result<List<Circle>>> getcircle(@Header("userId")long userId,
@Header("sessionId")String sessionId,
@Query("page")int page,
@Query("count") int count);
/**
* 我的钱包数据
* @return
*/
@GET("user/verify/v1/findUserWallet")
Observable<Result<List<Wallet>>> getwallet(@Header("userId")long userId,
@Header("sessionId")String sessionId,
@Query("page")int page,
@Query("count") int count);
/**
* 购物车数据
* @return
*/
@GET("order/verify/v1/findShoppingCart")
Observable<Result<List<Cart>>> getcart(@Header("userId")long userId,
@Header("sessionId")String sessionId);
/**
* 订单数据
* @return
*/
@GET("order/verify/v1/findOrderListByStatus")
Observable<Result<List<AllOrder>>> getallorder(@Header("userId")long userId,
@Header("sessionId")String sessionId,
@Query("status") int status,
@Query("page")int page,
@Query("count")int count);
/**
* 我的圈子数据
* @return
*/
@GET("circle/verify/v1/findMyCircleById")
Observable<Result<List<MyCircle>>> getmycircle(@Header("userId")long userId,
@Header("sessionId")String sessionId,
@Query("page")int page,
@Query("count") int count);
/**
* 我的足迹数据
* @return
*/
@GET("commodity/verify/v1/browseList")
Observable<Result<List<Foot>>> getmyfoot(@Header("userId")long userId,
@Header("sessionId")String sessionId,
@Query("page")int page,
@Query("count") int count);
/**
* 我的收货地址
* @param userId
* @param sessionId
* @return
*/
@GET("user/verify/v1/receiveAddressList")
Observable<Result<List<MyAddress>>> getmyAddress(@Header("userId") long userId,
@Header("sessionId") String sessionId);
/**
* 新增收货地址
* @return
*/
@POST("user/verify/v1/addReceiveAddress")
@FormUrlEncoded
Observable<AddMyAddress> getaddress(@Header("userId") long userId,
@Header("sessionId") String sessionId,
@Field("realName") String realName,
@Field("phone") String phone,
@Field("address") String address,
@Field("zipCode") String zipCode);
// 发布圈子
@POST("circle/verify/v1/releaseCircle")
Observable<Result> sendCircle(@Header("userId") int id,
@Header("sessionId") String iaa,
@Body MultipartBody multipart);
}
DataCall
public interface DataCall<T> {
void success(T data);
void fail(ApiException e);
}
P层
public class MoneyPresenter extends BasePresenter{
private int page=1;
public MoneyPresenter(DataCall dataCall) {
super(dataCall);
}
@Override
protected Observable observable(Object... args) {
IRequest iRequest = RetrofitUtils.getInstance().create(IRequest.class);
return iRequest.getallorder((long)args[1],(String) args[2],1,page,5);
}
}
activity/fragment
public class AllListFragment extends WDFragment{
@BindView(R.id.allorderfragemnt_item_RecyclerView)
RecyclerView allorderfragemntItemRecyclerView;
private AllListAdapter allOrderAdapter;
private AllOrderPresenter allOrderPresenter;
@Override
public String getPageName() {
return "全部订单的fragment";
}
@Override
protected int getLayoutId() {
return R.layout.fragment_all_list;
}
@Override
protected void initView() {
//新建xrecyclerview的布局
GridLayoutManager gridLayoutManager = new GridLayoutManager(getActivity(), 1, GridLayoutManager.VERTICAL, false);
allorderfragemntItemRecyclerView.setLayoutManager(gridLayoutManager);
//请求网络数据
allOrderPresenter = new AllOrderPresenter(new AllorderCall());
allOrderPresenter.reqeust(true,LOGIN_USER.getUserId(),LOGIN_USER.getSessionId());
//allorderfragemntItemRecyclerView.request();
//创建适配器
allOrderAdapter = new AllListAdapter(getActivity());
//设置适配器
allorderfragemntItemRecyclerView.setAdapter(allOrderAdapter);
//给recyclerview设置加载监听事件
}
class AllorderCall implements DataCall<Result<List<AllOrder>>>{
@Override
public void success(Result<List<AllOrder>> data) {
if (data.getStatus().equals("0000")){
//Toast.makeText(getActivity(), "成功获取订单", Toast.LENGTH_SHORT).show();
allOrderAdapter.AddAll(data.getOrderList());
allOrderAdapter.notifyDataSetChanged();
}
}
@Override
public void fail(ApiException e) {
Toast.makeText(getActivity(), "请求失败", Toast.LENGTH_SHORT).show();
}
}
}
adapter1
public class AllListAdapter extends RecyclerView.Adapter<AllListAdapter.ViewHolder> {
private Context context;
private List<AllOrder> list;
private ListAdapter orderAdapter;
public AllListAdapter(Context context) {
this.context = context;
list = new ArrayList<>();
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
View view = View.inflate(context, R.layout.allorder_recy_item, null);
ViewHolder holder = new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull final ViewHolder holder, int position) {
holder.allOrderTxtSum.setText("共"+list.get(0).getDetailList().size()+"件商品,需支付"+list.get(position).getPayAmount());
//布局管理器
holder.allOrderRecyItem.setLayoutManager(new LinearLayoutManager(context));
//设置子条目
List<AllOrder.DetailListBean> detailList = list.get(0).getDetailList();
orderAdapter = new ListAdapter(context,detailList);
holder.allOrderRecyItem.setAdapter(orderAdapter);
}
@Override
public int getItemCount() {
return list.size();
}
public void AddAll(List<AllOrder> orderList) {
if (orderList!=null){
list.addAll(orderList);
}
}
public class ViewHolder extends RecyclerView.ViewHolder {
private final RecyclerView allOrderRecyItem;
private final TextView allOrderTxtSum;
public ViewHolder(View itemView) {
super(itemView);
allOrderRecyItem = itemView.findViewById(R.id.allorder_recy_item);
allOrderTxtSum = itemView.findViewById(R.id.allorder_txt_sum);
}
}
}
adapter2
public class ListAdapter extends RecyclerView.Adapter<ListAdapter.ViewHolder> {
private Context context;
private List<AllOrder.DetailListBean> list;
public ListAdapter(Context context, List<AllOrder.DetailListBean> list) {
this.context = context;
this.list = list;
}
@NonNull
@Override
public ViewHolder onCreateViewHolder(@NonNull ViewGroup viewGroup, int i) {
View view = View.inflate(context, R.layout.oder_recy_item, null);
ViewHolder holder = new ViewHolder(view);
return holder;
}
@Override
public void onBindViewHolder(@NonNull ViewHolder viewHolder, final int i) {
//Uri uri = Uri.parse(list.get(i).getCommodityPic());
/**
* 加载图片
*/
String commodityPic = list.get(i).getCommodityPic();
String[] split = commodityPic.split("\\,");
viewHolder.orderSdvImage.setImageURI(split[1]);
//viewHolder.orderSdvImage.setImageResource(R.drawable.icon);
//Glide.with(context).load(list.get(i).getCommodityPic()).into(viewHolder.orderSdvImage);
viewHolder.oederTxtTitle.setText(list.get(i).getCommodityName());
viewHolder.oederTxtPrice.setText("¥:" + list.get(i).getCommodityPrice());
}
@Override
public int getItemCount() {
return list.size();
}
public class ViewHolder extends RecyclerView.ViewHolder {
private final SimpleDraweeView orderSdvImage;
private final TextView oederTxtTitle;
private final TextView oederTxtPrice;
public ViewHolder(@NonNull View itemView) {
super(itemView);
orderSdvImage = itemView.findViewById(R.id.order_sdv_image);
oederTxtTitle = itemView.findViewById(R.id.order_txt_title);
oederTxtPrice = itemView.findViewById(R.id.order_txt_price);
}
}
}