From fdec1db4f4529d0c7eab864f1395415de72bd728 Mon Sep 17 00:00:00 2001 From: jinyuer <454386664@qq.com> Date: Tue, 15 Sep 2020 10:18:52 +0800 Subject: [PATCH] 1 --- .../com/sl/house_property/Main2Fragment.java | 4 +- .../com/sl/house_property/Main4Fragment.java | 18 + .../discovery/HistoryRecordActivity.java | 133 ++++--- .../discovery/HistoryRecordFragment.java | 325 ++++++++++++++++++ .../house_property/order/OrderActivity.java | 2 +- .../res/layout/fragment_history_record.xml | 80 +++++ app/src/main/res/layout/fragment_main4.xml | 21 ++ .../main/res/layout/layout_history_record.xml | 54 +-- 8 files changed, 548 insertions(+), 89 deletions(-) create mode 100644 app/src/main/java/com/sl/house_property/discovery/HistoryRecordFragment.java create mode 100644 app/src/main/res/layout/fragment_history_record.xml diff --git a/app/src/main/java/com/sl/house_property/Main2Fragment.java b/app/src/main/java/com/sl/house_property/Main2Fragment.java index 4058721..180fe3e 100644 --- a/app/src/main/java/com/sl/house_property/Main2Fragment.java +++ b/app/src/main/java/com/sl/house_property/Main2Fragment.java @@ -90,8 +90,8 @@ public class Main2Fragment extends BaseFragment implements if (context instanceof OnFragmentInteractionListener) { mListener = (OnFragmentInteractionListener) context; } else { - throw new RuntimeException(context.toString() - + " must implement OnFragmentInteractionListener"); +// throw new RuntimeException(context.toString() +// + " must implement OnFragmentInteractionListener"); } } diff --git a/app/src/main/java/com/sl/house_property/Main4Fragment.java b/app/src/main/java/com/sl/house_property/Main4Fragment.java index 4698579..7be61b0 100644 --- a/app/src/main/java/com/sl/house_property/Main4Fragment.java +++ b/app/src/main/java/com/sl/house_property/Main4Fragment.java @@ -218,6 +218,15 @@ public class Main4Fragment extends BaseFragment { startActivityForResult(intent, 0); } }); + mDataBinding.tvOrder7.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getActivity(), OrderActivity.class); + intent.putExtra("type", 1); + intent.putExtra("orderType", 4); + startActivityForResult(intent, 0); + } + }); mDataBinding.tvOrder4.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { @@ -245,6 +254,15 @@ public class Main4Fragment extends BaseFragment { startActivityForResult(intent, 0); } }); + mDataBinding.tvOrder8.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + Intent intent = new Intent(getActivity(), OrderActivity.class); + intent.putExtra("type", 2); + intent.putExtra("orderType", 4); + startActivityForResult(intent, 0); + } + }); } // private void initMyReycyView() { diff --git a/app/src/main/java/com/sl/house_property/discovery/HistoryRecordActivity.java b/app/src/main/java/com/sl/house_property/discovery/HistoryRecordActivity.java index dc72851..7fe5855 100644 --- a/app/src/main/java/com/sl/house_property/discovery/HistoryRecordActivity.java +++ b/app/src/main/java/com/sl/house_property/discovery/HistoryRecordActivity.java @@ -4,9 +4,12 @@ import android.content.Context; import android.graphics.Bitmap; import android.graphics.drawable.BitmapDrawable; import android.graphics.drawable.Drawable; +import android.net.Uri; import android.os.Bundle; -import android.support.annotation.NonNull; import android.support.annotation.Nullable; +import android.support.v4.app.Fragment; +import android.support.v4.app.FragmentManager; +import android.support.v4.app.FragmentPagerAdapter; import android.support.v7.widget.LinearLayoutManager; import android.util.Log; import android.view.View; @@ -19,9 +22,8 @@ import com.google.gson.reflect.TypeToken; import com.gyf.immersionbar.ImmersionBar; import com.lzy.ninegrid.ImageInfo; import com.lzy.ninegrid.preview.NineGridViewClickAdapter; -import com.scwang.smartrefresh.layout.api.RefreshLayout; -import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener; import com.sl.house_property.BaseActivity; +import com.sl.house_property.MainFragment; import com.sl.house_property.R; import com.sl.house_property.databinding.ItemCommentBinding; import com.sl.house_property.databinding.ItemDiscoveryBinding; @@ -55,6 +57,8 @@ public class HistoryRecordActivity extends BaseActivity discoveryListEntities = new ArrayList<>(); + private ArrayList fragments; + private String[] strings; @Override protected int getLayoutResId() { @@ -73,60 +77,93 @@ public class HistoryRecordActivity extends BaseActivity(); + fragments.add(HistoryRecordFragment.newInstance(1, userId)); + fragments.add(HistoryRecordFragment.newInstance(2, userId)); + MyViewPagerAdapter myViewPagerAdapter = new MyViewPagerAdapter(getSupportFragmentManager()); + mDataBinding.fl.setAdapter(myViewPagerAdapter); + mDataBinding.tb.setupWithViewPager(mDataBinding.fl); +// mDataBinding.tv1.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View v) { +// +// if (type == 2) { +// type = 1; +// page = 1; +// getData(); +// mDataBinding.tv1.setTextColor(getResources().getColor(R.color.white)); +// mDataBinding.tv1.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); +// mDataBinding.tv2.setTextColor(getResources().getColor(R.color.black)); +// mDataBinding.tv2.setBackgroundColor(getResources().getColor(R.color.white)); +// } +// } +// }); +// mDataBinding.tv2.setOnClickListener(new View.OnClickListener() { +// @Override +// public void onClick(View v) { +// if (type == 1) { +// type = 2; +// page = 1; +// getData(); +// mDataBinding.tv2.setTextColor(getResources().getColor(R.color.white)); +// mDataBinding.tv2.setBackgroundColor(getResources().getColor(R.color.colorPrimary)); +// mDataBinding.tv1.setTextColor(getResources().getColor(R.color.black)); +// mDataBinding.tv1.setBackgroundColor(getResources().getColor(R.color.white)); +// } +// } +// }); +// mDataBinding.dw.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() { +// @Override +// public void onLoadMore(@NonNull RefreshLayout refreshLayout) { +// getData(); +// } +// +// @Override +// public void onRefresh(@NonNull RefreshLayout refreshLayout) { +// page = 1; +// getData(); +// } +// }); +// intRecycleView(); +// mDataBinding.dw.autoRefresh(); } + + class MyViewPagerAdapter extends FragmentPagerAdapter { + public MyViewPagerAdapter(FragmentManager fm) { + super(fm); + } + + @Override + public Fragment getItem(int position) { + return fragments.get(position); + } + + + @Override + public int getCount() { + return fragments.size(); + } + + @Override + public CharSequence getPageTitle(int position) { + return strings[position]; + + } + } + private void intRecycleView() { diff --git a/app/src/main/java/com/sl/house_property/discovery/HistoryRecordFragment.java b/app/src/main/java/com/sl/house_property/discovery/HistoryRecordFragment.java new file mode 100644 index 0000000..9a1bdbf --- /dev/null +++ b/app/src/main/java/com/sl/house_property/discovery/HistoryRecordFragment.java @@ -0,0 +1,325 @@ +package com.sl.house_property.discovery; + +import android.content.Context; +import android.graphics.Bitmap; +import android.graphics.drawable.BitmapDrawable; +import android.graphics.drawable.Drawable; +import android.os.Bundle; +import android.support.annotation.NonNull; +import android.support.annotation.Nullable; +import android.support.v7.widget.LinearLayoutManager; +import android.util.Log; +import android.view.View; +import android.widget.Toast; + +import com.bumptech.glide.Glide; +import com.bumptech.glide.request.RequestOptions; +import com.google.gson.Gson; +import com.google.gson.internal.LinkedTreeMap; +import com.google.gson.reflect.TypeToken; +import com.lzy.ninegrid.ImageInfo; +import com.lzy.ninegrid.preview.NineGridViewClickAdapter; +import com.scwang.smartrefresh.layout.api.RefreshLayout; +import com.scwang.smartrefresh.layout.listener.OnRefreshLoadMoreListener; +import com.sl.house_property.BaseFragment; +import com.sl.house_property.Main2Fragment; +import com.sl.house_property.R; +import com.sl.house_property.databinding.FragmentHistoryRecordBinding; +import com.sl.house_property.databinding.ItemCommentBinding; +import com.sl.house_property.databinding.ItemDiscoveryBinding; +import com.squareup.picasso.Picasso; +import com.squareup.picasso.Target; + +import org.json.JSONObject; + +import java.lang.reflect.Type; +import java.util.ArrayList; +import java.util.HashMap; +import java.util.Map; + +import adapter.BaseRecycleViewAdapter; +import entity.DiscoveryListEntity; +import http.ApiConfig; +import my_loader.Loader; +import my_loader.Resultcode; +import my_view.tao_bao_refresh.FullyGridLayoutManager; +import rx.Subscription; +import rx.functions.Action1; +import tools.PicassoRoundTransform; +import utils.DateUtils; +import utils.Md5; + +public class HistoryRecordFragment extends BaseFragment { + private Context context; + private int type = 2; + private int page = 1; + private String userId; + private Loader loader; + private ArrayList discoveryListEntities = new ArrayList<>(); + + @Override + protected int getLayoutId() { + return R.layout.fragment_history_record; + } + + public static HistoryRecordFragment newInstance(int param1, String param2) { + HistoryRecordFragment fragment = new HistoryRecordFragment(); + Bundle args = new Bundle(); + args.putInt("param1", param1); + args.putString("param2", param2); + fragment.setArguments(args); + return fragment; + } + + @Override + public void onCreate(@Nullable Bundle savedInstanceState) { + super.onCreate(savedInstanceState); + type = getArguments().getInt("param1"); + userId = getArguments().getString("param2"); + } + + @Override + protected void loadData() { + + + context = getContext(); + loader = new Loader(); + mDataBinding.dw.setOnRefreshLoadMoreListener(new OnRefreshLoadMoreListener() { + @Override + public void onLoadMore(@NonNull RefreshLayout refreshLayout) { + getData(); + } + + @Override + public void onRefresh(@NonNull RefreshLayout refreshLayout) { + page = 1; + getData(); + } + }); + intRecycleView(); + mDataBinding.dw.autoRefresh(); + } + + + private void intRecycleView() { + + + LinearLayoutManager linearLayoutManager = new LinearLayoutManager(context); + mDataBinding.recyView.setNestedScrollingEnabled(false);//禁止rcyc嵌套滑动 + mDataBinding.recyView.setLayoutManager(linearLayoutManager); + BaseRecycleViewAdapter baseRecycleViewAdapter = new BaseRecycleViewAdapter(context, R.layout.item_discovery); + baseRecycleViewAdapter.setHasStableIds(true); + + discoveryListEntities = new ArrayList<>(); + baseRecycleViewAdapter.setOnBindViewHolder(new BaseRecycleViewAdapter.BindView() { + @Override + public void onBindViewHolder(Object b, final int position) { + if (!(position >= discoveryListEntities.size())) { + final ItemDiscoveryBinding homeGridAdapterItemBinding = (ItemDiscoveryBinding) b; + // homeGridAdapterItemBinding.setMyentity(discoveryListEntities.get(position)); + homeGridAdapterItemBinding.ivComment.setVisibility(View.GONE); + final DiscoveryListEntity discoveryListEntity = discoveryListEntities.get(position); + homeGridAdapterItemBinding.tvNikeName.setText(discoveryListEntity.getNickname()); + homeGridAdapterItemBinding.tvContent.setText(discoveryListEntity.getGoods_detail()); + + + if (discoveryListEntity.getLike().isEmpty()) { + homeGridAdapterItemBinding.tvLike.setVisibility(View.GONE); + } else { + homeGridAdapterItemBinding.tvLike.setVisibility(View.VISIBLE); + StringBuilder likeString = new StringBuilder(); + for (int i = 0; i < discoveryListEntity.getLike().size(); i++) { + if (i == 0) { + likeString.append("❤"); + + } else { + likeString.append(","); + } + likeString.append(discoveryListEntity.getLike().get(i).getNickname()); + } + homeGridAdapterItemBinding.tvLike.setText(likeString.toString()); + + homeGridAdapterItemBinding.tvTime.setText(DateUtils.getDate(discoveryListEntity.getCtime())); + + } + if (discoveryListEntity.getDis_content().isEmpty()) { + homeGridAdapterItemBinding.rvComment.setVisibility(View.GONE); + } else { + homeGridAdapterItemBinding.rvComment.setVisibility(View.VISIBLE); + FullyGridLayoutManager mgr = new FullyGridLayoutManager(context, 1); + mgr.setOrientation(FullyGridLayoutManager.VERTICAL); + mgr.setSmoothScrollbarEnabled(true); + homeGridAdapterItemBinding.rvComment.setLayoutManager(mgr); + BaseRecycleViewAdapter baseRecycleViewAdapter = new BaseRecycleViewAdapter(context, R.layout.item_comment); + homeGridAdapterItemBinding.rvComment.setAdapter(baseRecycleViewAdapter); + final ArrayList dis_content = discoveryListEntity.getDis_content(); + baseRecycleViewAdapter.setOnBindViewHolder(new BaseRecycleViewAdapter.BindView() { + @Override + public void onBindViewHolder(Object b, int position) { + ItemCommentBinding itemCommentBinding = (ItemCommentBinding) b; + itemCommentBinding.tvName.setText(dis_content.get(position).getNickname() + ": "); + itemCommentBinding.tvInfo.setText(dis_content.get(position).getContents()); + if (dis_content.get(position).getReply().isEmpty()) { + itemCommentBinding.llHf.setVisibility(View.GONE); + + } else { + itemCommentBinding.llHf.setVisibility(View.VISIBLE); + itemCommentBinding.tvName2.setText(discoveryListEntity.getNickname()); + itemCommentBinding.tvInfo2.setText("回复"); + itemCommentBinding.tvName3.setText(dis_content.get(position).getNickname() + ":"); + itemCommentBinding.tvInfo3.setText(dis_content.get(position).getReply()); + + } + } + }); + baseRecycleViewAdapter.setData(dis_content); + + } + + + RequestOptions requestOptions = new RequestOptions(); + requestOptions.placeholder(R.mipmap.icon_default_rectangle); + requestOptions.error(R.mipmap.icon_default_rectangle); + + Glide.with(context).load(discoveryListEntity.getAvatar()) + .apply(requestOptions) + .into(homeGridAdapterItemBinding.imageHead); + ArrayList imageInfos = new ArrayList<>(); + + if (discoveryListEntity.getPic().size() > 0) { + + // Log.e("pic", discoveryListEntity.getPic().get(0)); + for (int i = 0; i < discoveryListEntity.getPic().size(); i++) { + if (discoveryListEntity.getPic().get(i).endsWith(".mp4") || discoveryListEntity.getPic().get(i).endsWith(".avi")) { + ImageInfo imageInfo = new ImageInfo(); + imageInfo.setType(2); + imageInfo.setBigImageUrl(discoveryListEntity.getPic().get(i)); + imageInfo.setThumbnailUrl(discoveryListEntity.getPic().get(i)); + imageInfos.add(imageInfo); + } else { + ImageInfo imageInfo = new ImageInfo(); + imageInfo.setType(1); + imageInfo.setBigImageUrl(discoveryListEntity.getPic().get(i)); + imageInfo.setThumbnailUrl(discoveryListEntity.getPic().get(i)); + imageInfos.add(imageInfo); + } + + } + + } else { + ImageInfo imageInfo = new ImageInfo(); + imageInfo.setType(1); + imageInfo.setBigImageUrl(discoveryListEntity.getThumb()); + imageInfo.setThumbnailUrl(discoveryListEntity.getThumb()); + imageInfos.add(imageInfo); + } + homeGridAdapterItemBinding.nineGrid.setAdapter(new NineGridViewClickAdapter(context, imageInfos)); + } + } + }); + mDataBinding.recyView.setAdapter(baseRecycleViewAdapter); + + baseRecycleViewAdapter.setData(discoveryListEntities); + } + + private void getData() { + + Map map = new HashMap<>(); + map.put("userid", userId); + map.put("type", type + ""); + map.put("app", "Goods"); + map.put("class", "MyGoodsLists"); + map.put("page", page + ""); + map.put("sign", Md5.md5("Goods" + "MyGoodsLists" + Md5.secret)); + Subscription subscribe = loader.getMovie(ApiConfig.BASE_URL, map).subscribe(new Action1() { + @Override + public void call(Resultcode resultcode) { + mDataBinding.dw.finishRefresh(); + mDataBinding.dw.finishLoadMore(); + progressDialog.dismiss(); + if (!(resultcode.status == 0)) { + Toast.makeText(context, resultcode.msg, Toast.LENGTH_SHORT).show(); + } + if (resultcode.status == 0) { + // intRecycleView(); + Gson gs = new Gson(); + LinkedTreeMap adta = (LinkedTreeMap) resultcode.data; + String s = gs.toJson(adta); + try { + JSONObject jsonObject = new JSONObject(s); + org.json.JSONArray array = jsonObject.getJSONArray("info"); + Type type = new TypeToken>() { + }.getType(); + if (page == 1) { + String fengmian = jsonObject.getString("fengmian"); + String avatar = jsonObject.getString("avatar"); + Picasso.with(context).load(fengmian) + .placeholder(R.mipmap.icon_default_rectangle) + .into(target); + Picasso.with(context).load(avatar) + .placeholder(R.mipmap.icon_default_rectangle) + .transform(new PicassoRoundTransform()) + .into(mDataBinding.head); + ArrayList o = new Gson().fromJson(array.toString(), type); + discoveryListEntities.clear(); + discoveryListEntities.addAll(o); + BaseRecycleViewAdapter baseRecycleViewAdapter = (BaseRecycleViewAdapter) mDataBinding.recyView.getAdapter(); + baseRecycleViewAdapter.setData(discoveryListEntities); + page++; + } else { + ArrayList o = new Gson().fromJson(array.toString(), type); + discoveryListEntities.addAll(o); + + BaseRecycleViewAdapter baseRecycleViewAdapter = (BaseRecycleViewAdapter) mDataBinding.recyView.getAdapter(); + baseRecycleViewAdapter.setData(discoveryListEntities); + Log.e("sizi", discoveryListEntities.size() + ""); + // int count = jsonObject.getInt("count"); + if (o.isEmpty()) { + mDataBinding.dw.finishLoadMoreWithNoMoreData(); + } else { + + page++; + + } + } + + + } catch (Exception e) { + e.fillInStackTrace(); + } + } + } + }, new Action1() { + @Override + public void call(Throwable throwable) { + progressDialog.dismiss(); + mDataBinding.dw.finishRefresh(); + mDataBinding.dw.finishLoadMore(); + Toast.makeText(context, getString(R.string.getdatafailure), Toast.LENGTH_SHORT).show(); + throwable.printStackTrace(); + } + }); + + } + + private Target target = new Target() { + @Override + public void onBitmapLoaded(Bitmap bitmap, Picasso.LoadedFrom from) { + Drawable drawable = new BitmapDrawable(bitmap); + mDataBinding.v.setBackground(drawable); + + + } + + @Override + public void onBitmapFailed(Drawable errorDrawable) { + } + + @Override + public void onPrepareLoad(Drawable placeHolderDrawable) { + } + }; + + + +} diff --git a/app/src/main/java/com/sl/house_property/order/OrderActivity.java b/app/src/main/java/com/sl/house_property/order/OrderActivity.java index c9f67bd..ea294ef 100644 --- a/app/src/main/java/com/sl/house_property/order/OrderActivity.java +++ b/app/src/main/java/com/sl/house_property/order/OrderActivity.java @@ -103,7 +103,7 @@ public class OrderActivity extends BaseActivity { } else if (orderType == 3) { mDataBinding.tvTitle.setText("待收货"); } else if (orderType == 4) { - mDataBinding.tvTitle.setText("待评价"); + mDataBinding.tvTitle.setText("已完成"); } } diff --git a/app/src/main/res/layout/fragment_history_record.xml b/app/src/main/res/layout/fragment_history_record.xml new file mode 100644 index 0000000..6b5b54b --- /dev/null +++ b/app/src/main/res/layout/fragment_history_record.xml @@ -0,0 +1,80 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/app/src/main/res/layout/fragment_main4.xml b/app/src/main/res/layout/fragment_main4.xml index 89233f5..eb9dd6c 100644 --- a/app/src/main/res/layout/fragment_main4.xml +++ b/app/src/main/res/layout/fragment_main4.xml @@ -354,6 +354,17 @@ android:drawablePadding="8dp" android:gravity="center_horizontal" android:text="待收货" /> + + @@ -422,6 +433,16 @@ android:drawablePadding="8dp" android:gravity="center_horizontal" android:text="待收货" /> + diff --git a/app/src/main/res/layout/layout_history_record.xml b/app/src/main/res/layout/layout_history_record.xml index 17e6018..8f981c5 100644 --- a/app/src/main/res/layout/layout_history_record.xml +++ b/app/src/main/res/layout/layout_history_record.xml @@ -7,7 +7,7 @@ android:layout_height="match_parent" android:orientation="vertical"> - - + android:layout_centerHorizontal="true" + android:gravity="center_horizontal" /> - + - + android:layout_height="match_parent" + android:background="@color/white"> - - - - +