From 2aead6275fdd1bbbd778abc0e85663a2578fab06 Mon Sep 17 00:00:00 2001 From: admin <weikou2014> Date: 星期六, 15 五月 2021 18:23:33 +0800 Subject: [PATCH] 详情页完善 --- app/src/main/java/com/tejia/lijin/app/ui/recommend/GoodsDetailActivity.java | 169 ++++++++++++++++++++++++++++++++++++++++++++----------- 1 files changed, 134 insertions(+), 35 deletions(-) diff --git a/app/src/main/java/com/tejia/lijin/app/ui/recommend/GoodsDetailActivity.java b/app/src/main/java/com/tejia/lijin/app/ui/recommend/GoodsDetailActivity.java index 6cd32f6..7bb20d8 100644 --- a/app/src/main/java/com/tejia/lijin/app/ui/recommend/GoodsDetailActivity.java +++ b/app/src/main/java/com/tejia/lijin/app/ui/recommend/GoodsDetailActivity.java @@ -30,6 +30,7 @@ import android.widget.FrameLayout; import android.widget.ImageView; import android.widget.LinearLayout; +import android.widget.RelativeLayout; import android.widget.TextView; import android.widget.Toast; @@ -37,6 +38,7 @@ import com.bumptech.glide.Glide; import com.google.gson.Gson; import com.google.gson.GsonBuilder; +import com.google.gson.reflect.TypeToken; import com.tejia.lijin.app.BasicTextHttpResponseHandler; import com.tejia.lijin.app.R; import com.tejia.lijin.app.ShoppingApi; @@ -47,6 +49,7 @@ import com.tejia.lijin.app.entity.goods.GoodsDetailVO; import com.tejia.lijin.app.ui.BaseActivity; import com.tejia.lijin.app.ui.dialog.JumpTaoBaoDialog; +import com.tejia.lijin.app.ui.goods.GoodsDetailHongBaoListAdapter; import com.tejia.lijin.app.ui.goods.GoodsDetailPreEventManager; import com.tejia.lijin.app.ui.invite.ShareBrowserActivity; import com.tejia.lijin.app.ui.mine.LoginSelectActivity; @@ -65,6 +68,7 @@ import com.tejia.lijin.app.util.user.UserUtil; import com.wang.avi.AVLoadingIndicatorView; import com.wpc.library.content.ConnectivityChangeHelper; +import com.wpc.library.recyclerviewhelper.DividerItemDecoration; import com.wpc.library.util.NetUtils; import com.wpc.library.util.common.DimenUtils; import com.wpc.library.util.common.StringUtils; @@ -78,6 +82,7 @@ import java.util.List; import java.util.Timer; +import androidx.recyclerview.widget.LinearLayoutManager; import androidx.recyclerview.widget.RecyclerView; import androidx.viewpager.widget.PagerAdapter; import androidx.viewpager.widget.ViewPager; @@ -129,7 +134,7 @@ private FlowLayout fl_rights_type; //浠锋牸淇℃伅/绾㈠寘 - private LinearLayout ll_price; + private RelativeLayout rl_price; private RecyclerView rv_price_info; //鍥炬枃璇︽儏 @@ -241,7 +246,7 @@ fl_rights_type = findViewById(R.id.fl_rights_type); //浠锋牸淇℃伅/绾㈠寘 - ll_price = findViewById(R.id.ll_price); + rl_price = findViewById(R.id.rl_price); rv_price_info = findViewById(R.id.rv_price_info); ll_fanli = findViewById(R.id.ll_fanli); @@ -424,6 +429,9 @@ tv_top_title4.setOnClickListener(this); ll_add_collect.setOnClickListener(this); fl_back_face.setOnClickListener(this); + + ll_fanli.setOnClickListener(this); + ll_buy.setOnClickListener(this); if (getSharedPreferences("user", MODE_PRIVATE).getString("is_goods_web_detail", "0").equalsIgnoreCase("1")) { Intent intent = new Intent(GoodsDetailActivity.this, GoodsDetailBrowerActivity.class); @@ -648,12 +656,9 @@ @Override public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { if (jsonObject.optString("code").equalsIgnoreCase("0")) { - FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(ViewGroup.LayoutParams.MATCH_PARENT, ViewGroup.LayoutParams.MATCH_PARENT); - params.bottomMargin = DimenUtils.dip2px(GoodsDetailActivity.this, 50); - lv_goods_pic.setLayoutParams(params); - Gson gson = new GsonBuilder().serializeNulls().create(); mInfo = gson.fromJson(jsonObject.optJSONObject("data").toString(), GoodsDetailVO.class); + getGoodsRecommend(mInfo.getGoods().getGoodsId(), mInfo.getGoods().getGoodsType()); goodsDetailPreEventManager = new GoodsDetailPreEventManager(GoodsDetailActivity.this, mInfo); couponUsers = mInfo.getExtra().getListCouponUser(); @@ -677,8 +682,10 @@ ll_notification.setAnimation(inAnima); ll_notification.startAnimation(inAnima); } - ImageUtil.showImageFace(GoodsDetailActivity.this, mInfo.getGoods().getTitle(), mInfo.getGoods().getShopType(), tv_name); + + tv_name.setText(mInfo.getGoods().getTitle()); webView.loadUrl(mInfo.getExtra().getDetailUrl()); + tv_sales_num.setText("鏈堥攢 " + mInfo.getGoods().getSalesCount()); if (mInfo.getGoods().getShopInfo() != null) { @@ -717,6 +724,12 @@ } else { setCollectionData(false); } + //鏉冪泭璁剧疆 + + setRightsData(mInfo.getGoods().getRights()); + + //璁剧疆浠锋牸淇℃伅 + setPriceInfo(mInfo.getGoods()); //鍙戣揣鍦拌缃� if (!StringUtils.isBlank(mInfo.getGoods().getAddress())) { @@ -849,8 +862,12 @@ Toast.makeText(GoodsDetailActivity.this, "璇峰厛鐧诲綍鏉挎牀蹇渷璐﹀彿", Toast.LENGTH_SHORT).show(); } break; - case R.id.fl_buy: - //TODO 鍘昏喘涔� + case R.id.ll_buy: + goBuy(); + break; + + case R.id.ll_fanli: + goFanli(); break; case R.id.fl_back_face: @@ -1096,37 +1113,119 @@ } - private void setRightsData(boolean coupon, String money, String desc, String link) { - LayoutInflater inflater = LayoutInflater.from(this); - View root = inflater.inflate(R.layout.item_goods_detail_rights, null); - AQuery query = new AQuery(root); - GradientDrawable gd = new GradientDrawable(); - gd.setCornerRadius(DimenUtils.dip2px(getApplicationContext(), 10)); - - - TextView tv_money = query.id(R.id.tv_money).getTextView(); - TextView tv_desc = query.id(R.id.tv_desc).getTextView(); - - if (coupon) { - gd.setColors(new int[]{Color.parseColor("#FFEF9A"), Color.parseColor("#FFFFFF")}); - tv_money.setTextColor(Color.parseColor("#FFB218")); - tv_desc.setTextColor(Color.parseColor("#FFB218")); + private void setRightsData(List<GoodsDetailVO.GoodsRightsVO> rightsList) { + if (rightsList == null || rightsList.size() == 0) { + ll_rights_type.setVisibility(View.GONE); } else { - gd.setColors(new int[]{Color.parseColor("#FFE4E8"), Color.parseColor("#FFFFFF")}); - tv_money.setTextColor(Color.parseColor("#FF2B4B")); - tv_desc.setTextColor(Color.parseColor("#FF2B4B")); + ll_rights_type.setVisibility(View.VISIBLE); + } + fl_rights_type.removeAllViews(); + LayoutInflater inflater = LayoutInflater.from(this); + for (GoodsDetailVO.GoodsRightsVO rights : rightsList) { + View root = inflater.inflate(R.layout.item_goods_detail_rights, null); + FrameLayout.LayoutParams params = new FrameLayout.LayoutParams(FrameLayout.LayoutParams.WRAP_CONTENT, FrameLayout.LayoutParams.WRAP_CONTENT); + params.setMargins(0, DimenUtils.dip2px(getApplicationContext(), 8), DimenUtils.dip2px(getApplicationContext(), 10), 0); +// root.setLayoutParams(params); + + AQuery query = new AQuery(root); + GradientDrawable gd = new GradientDrawable(); + gd.setCornerRadius(DimenUtils.dip2px(getApplicationContext(), 10)); + gd.setOrientation(GradientDrawable.Orientation.LEFT_RIGHT); + TextView tv_money = query.id(R.id.tv_money).getTextView(); + TextView tv_desc = query.id(R.id.tv_desc).getTextView(); + if (rights.getType() == 1) { + gd.setColors(new int[]{Color.parseColor("#FFEF9A"), Color.parseColor("#FFFFFF")}); + tv_money.setTextColor(Color.parseColor("#FFB218")); + tv_desc.setTextColor(Color.parseColor("#FFB218")); + tv_money.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon_goods_detail_rights_coupon, 0, 0, 0); + } else { + gd.setColors(new int[]{Color.parseColor("#FFE4E8"), Color.parseColor("#FFFFFF")}); + tv_money.setTextColor(Color.parseColor("#FF2B4B")); + tv_desc.setTextColor(Color.parseColor("#FF2B4B")); + if (rights.getType() == 2) { + tv_money.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon_goods_detail_rights_lijin, 0, 0, 0); + } else { + tv_money.setCompoundDrawablesWithIntrinsicBounds(R.drawable.icon_goods_detail_rights_hb, 0, 0, 0); + } + + } + + ((LinearLayout) query.id(R.id.ll_content).getView()).setBackground(gd); + + if (!StringUtils.isNullOrEmpty(rights.getDescLink())) { + tv_desc.setCompoundDrawablesWithIntrinsicBounds(0, 0, R.drawable.icon_goods_detail_rights_lijin, 0); + final String url = rights.getDescLink(); + tv_desc.setOnClickListener(new View.OnClickListener() { + @Override + public void onClick(View v) { + startActivity(new Intent(getApplicationContext(), ShareBrowserActivity.class).putExtra("url", url)); + } + }); + } + + SpannableString moneyString = new SpannableString(rights.getMoney()); + moneyString.setSpan(new RelativeSizeSpan(1.5f), 1, (rights.getMoney().indexOf(".") > -1 ? rights.getMoney().indexOf(".") : rights.getMoney().length()), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); + tv_money.setText(moneyString); + tv_desc.setText(rights.getDesc()); + fl_rights_type.addView(root, params); + } + } + + private void setPriceInfo(GoodsDetailVO.GoodsInfoVO goodsInfoVO) { + if (goodsInfoVO.getPriceList() == null || goodsInfoVO.getPriceList().size() == 0) { + rl_price.setVisibility(View.GONE); + } else { + rl_price.setVisibility(View.VISIBLE); } - ((LinearLayout) query.id(R.id.ll_content).getView()).setBackground(gd); + rv_price_info.setLayoutManager(new LinearLayoutManager(rv_price_info.getContext())); + rv_price_info.setNestedScrollingEnabled(false); + DividerItemDecoration decoration = new DividerItemDecoration(); + decoration.setSize(DimenUtils.dip2px(getApplicationContext(), 5)); + rv_price_info.addItemDecoration(decoration); + rv_price_info.setAdapter(new GoodsDetailHongBaoListAdapter(getApplicationContext(), goodsInfoVO.getPriceList(), false)); - if (!StringUtils.isNullOrEmpty(link)) { - tv_desc.setCompoundDrawablesWithIntrinsicBounds(0, 0, 0, 0); - } + tv_fanli_money_num.setText(goodsInfoVO.getMoneyInfo().getFanliMoney()); + tv_buy.setText(goodsInfoVO.getMoneyInfo().getHongBaoMoney()); + } - SpannableString moneyString = new SpannableString(money); - moneyString.setSpan(new RelativeSizeSpan(1.5f), 1, (money.indexOf(".") > -1 ? money.indexOf(".") : money.length()), Spanned.SPAN_EXCLUSIVE_EXCLUSIVE); - tv_money.setText(moneyString); - tv_desc.setText(desc); + + private void getGoodsRecommend(String goodsId, int goodsType) { + ShoppingApi.getGuessAndRecommend(this, goodsId, goodsType + "", new BasicTextHttpResponseHandler() { + @Override + public void onSuccessPerfect(int statusCode, Header[] headers, JSONObject jsonObject) throws Exception { + if (jsonObject.optString("code").equalsIgnoreCase("0")) { + gList.clear(); + Gson gson = new GsonBuilder().serializeNulls().create(); + List<TaoBaoGoodsBrief> list1 = gson.fromJson( + jsonObject.optJSONObject("data").optJSONArray("listGuess").toString(), + new TypeToken<List<TaoBaoGoodsBrief>>() { + }.getType()); + List<TaoBaoGoodsBrief> list2 = gson.fromJson( + jsonObject.optJSONObject("data").optJSONArray("listQuality").toString(), + new TypeToken<List<TaoBaoGoodsBrief>>() { + }.getType()); + if (list1 != null && list1.size() > 0) { + gList.addAll(list1); + gAdapter.notifyDataSetChanged(); + } + if (list2 != null && list2.size() > 0) { + gList.addAll(list2); + gAdapter.notifyDataSetChanged(); + } + + if (gList.size() == 0) { + findViewById(R.id.fl_top_title3).setVisibility(View.GONE); + ll_guess_like.setVisibility(View.GONE); + } + if (gList.size() == 0) { + findViewById(R.id.fl_top_title4).setVisibility(View.GONE); + findViewById(R.id.ll_relative_goods).setVisibility(View.GONE); + } + } + } + + }); } } -- Gitblit v1.8.0