提交 35082b55 authored 作者: lgd's avatar lgd

1.添加通用购物车红点

上级 c1a5fe67
......@@ -34,6 +34,7 @@ import com.wd.workoffice.util.DialogUtils;
import com.wd.workoffice.util.UserKeeper;
import com.wd.workoffice.util.WorkUtils;
import com.wd.workoffice.widget.AddAndReduceView;
import com.wd.workoffice.widget.BadgeCarProvider;
import org.greenrobot.eventbus.EventBus;
import org.greenrobot.eventbus.Subscribe;
......@@ -46,6 +47,7 @@ import java.util.Map;
import androidx.annotation.Nullable;
import androidx.appcompat.app.AlertDialog;
import androidx.core.view.MenuItemCompat;
import androidx.recyclerview.widget.LinearLayoutManager;
import androidx.recyclerview.widget.RecyclerView;
import butterknife.BindView;
......@@ -116,6 +118,7 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
private TradingProductAdapter tradingProductAdapter;
private Map<String, Object> tradeParam;
private StockBean chooseSendStock;
private BadgeCarProvider mActionProvider;
@Override
protected void initView() {
......@@ -229,6 +232,14 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
@Override
public boolean onCreateOptionsMenu(Menu menu) {
getMenuInflater().inflate(R.menu.menu_store_cart, menu);
MenuItem menuItem = menu.findItem(R.id.cart);
mActionProvider = (BadgeCarProvider) MenuItemCompat.getActionProvider(menuItem);
mActionProvider.setOnClickListener(new BadgeCarProvider.OnClickListener() {
@Override
public void onClick() {
goCar();
}
});
return super.onCreateOptionsMenu(menu);
}
......@@ -236,14 +247,21 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
public boolean onOptionsItemSelected(MenuItem item) {
switch (item.getItemId()) {
case R.id.cart:
if (goCar()) return super.onOptionsItemSelected(item);
break;
}
return super.onOptionsItemSelected(item);
}
private boolean goCar() {
if (TextUtils.equals("6", type)) {
if (chooseStock == null) {
toast("请选择入库仓库");
return super.onOptionsItemSelected(item);
return true;
}
if (!carMap.containsKey("pro")) {
toast("购物车没有产品");
return super.onOptionsItemSelected(item);
return true;
}
startActivity(StoreTradingCarActivity.class,
"pro", JSON.toJSONString(carMap),
......@@ -257,49 +275,49 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
} else {
if (carList.size() == 0) {
toast("购物车没有产品");
return super.onOptionsItemSelected(item);
return true;
}
switch (type) {
case "1":
if (clientId == null) {
toast("请选择客户");
return super.onOptionsItemSelected(item);
return true;
}
if (chooseStock == null) {
toast("请选择入库仓库");
return super.onOptionsItemSelected(item);
return true;
}
if (chooseSendStock == null) {
toast("请选择发货仓库");
return super.onOptionsItemSelected(item);
return true;
}
break;
case "2":
if (clientId == null) {
toast("请选择客户");
return super.onOptionsItemSelected(item);
return true;
}
if (supplyId == null) {
toast("请选择供应商");
return super.onOptionsItemSelected(item);
return true;
}
if (chooseStock == null) {
toast("请选择入库仓库");
return super.onOptionsItemSelected(item);
return true;
}
if (chooseSendStock == null) {
toast("请选择发货仓库");
return super.onOptionsItemSelected(item);
return true;
}
break;
case "3":
if (supplyId == null) {
toast("请先选择供应商");
return super.onOptionsItemSelected(item);
return true;
}
if (chooseStock == null) {
toast("请选择入库仓库");
return super.onOptionsItemSelected(item);
return true;
}
break;
case "4":
......@@ -307,13 +325,13 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
case "5":
if (chooseStock == null) {
toast("请选择入库仓库");
return super.onOptionsItemSelected(item);
return true;
}
break;
case "6":
if (chooseStock == null) {
toast("请选择入库仓库");
return super.onOptionsItemSelected(item);
return true;
}
break;
}
......@@ -329,9 +347,7 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
"receiveDeptId", getIntent().getStringExtra("deptId"),
"code", permissionCode);
}
break;
}
return super.onOptionsItemSelected(item);
return false;
}
@Override
......@@ -683,6 +699,7 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
String pro = event.getPro();
carList.clear();
carList.addAll(JSON.parseArray(pro, ProductBean.RecordsBean.class));
changeCarBadge();
}
/**
......@@ -757,6 +774,7 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
carList.add(chooseProduct);
}
toast("加入购物车成功");
changeCarBadge();
}
......@@ -823,7 +841,19 @@ public class ChooseInfoActivity extends WorkToolBarActivity implements BatChoose
}
carMap.put("pro", JSON.toJSONString(quantity));
carMap.put("proDetail", JSON.toJSONString(data));
if (data.size() > 0) {
mActionProvider.setBadgeVisibility(View.VISIBLE);
} else {
mActionProvider.setBadgeVisibility(View.GONE);
}
toast("加入购物车成功");
}
private void changeCarBadge() {
if (carList.size() > 0) {
mActionProvider.setBadgeVisibility(View.VISIBLE);
} else {
mActionProvider.setBadgeVisibility(View.GONE);
}
}
}
package com.wd.workoffice.widget;
import android.content.Context;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.TextView;
import com.wd.workoffice.R;
import androidx.core.view.ActionProvider;
import flexible.xd.android_base.utils.ScreenUtils;
public class BadgeCarProvider extends ActionProvider {
private TextView tvBadge;
private OnClickListener onClickListener;
public BadgeCarProvider(Context context) {
super(context);
}
@Override
public View onCreateActionView() {
int size = getContext().getResources().getDimensionPixelSize(
R.dimen.flexible_actionbar_size);
//
ViewGroup.LayoutParams layoutParams = new ViewGroup.LayoutParams(ScreenUtils.getScreenWidth() / 5, size);
View view = LayoutInflater.from(getContext())
.inflate(R.layout.view_red, null, false);
view.setLayoutParams(layoutParams);
tvBadge = view.findViewById(R.id.tv_badge);
view.setOnClickListener(onViewClickListener);
return view;
}
// 点击处理。
private View.OnClickListener onViewClickListener = new View.OnClickListener() {
@Override
public void onClick(View v) {
if (onClickListener != null)
onClickListener.onClick();
}
};
// 外部设置监听。
public void setOnClickListener(OnClickListener onClickListener) {
this.onClickListener = onClickListener;
}
public interface OnClickListener {
void onClick();
}
public void setBadgeVisibility(int visibility) {
tvBadge.setVisibility(visibility);
}
}
\ No newline at end of file
<?xml version="1.0" encoding="utf-8"?>
<RelativeLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="70mm"
android:layout_height="match_parent"
android:background="?actionBarItemBackground"
android:orientation="vertical">
<TextView
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_centerInParent="true"
android:layout_gravity="center"
android:text="购物车"
android:textSize="15sp" />
<TextView
android:id="@+id/tv_badge"
android:layout_width="10mm"
android:layout_height="10mm"
android:layout_alignParentRight="true"
android:layout_margin="3mm"
android:background="@drawable/shape_red_circle"
android:visibility="gone" />
</RelativeLayout>
\ No newline at end of file
......@@ -4,5 +4,6 @@
<item
android:id="@+id/cart"
android:title="购物车"
app:actionProviderClass="com.wd.workoffice.widget.BadgeCarProvider"
app:showAsAction="always" />
</menu>
\ No newline at end of file
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论