提交 9aeea8c5 authored 作者: lgd's avatar lgd

1.修改购物车焦点逻辑

上级 84d6ae92
......@@ -7,11 +7,24 @@ package com.wd.workoffice.bean.event;
**/
public class ModifyCarEvent {
String pro;
boolean needRefresh;
public boolean isNeedRefresh() {
return needRefresh;
}
public void setNeedRefresh(boolean needRefresh) {
this.needRefresh = needRefresh;
}
public ModifyCarEvent(String pro) {
this.pro = pro;
}
public ModifyCarEvent(String pro, boolean needRefresh) {
this.pro = pro;
}
public String getPro() {
return pro;
}
......
......@@ -83,7 +83,7 @@ public class StoreSaleCarActivity extends WorkToolBarActivity {
String pro = getIntent().getStringExtra("pro");
productList.addAll(JSON.parseArray(pro, ProductBean.RecordsBean.class));
productAdapter.notifyDataSetChanged();
changeNumAndPrice();
changeNumAndPrice(false);
}
@Override
......@@ -137,7 +137,7 @@ public class StoreSaleCarActivity extends WorkToolBarActivity {
dialog.dismiss();
}
}).show();
}else {
} else {
goNext();
}
}
......@@ -174,17 +174,18 @@ public class StoreSaleCarActivity extends WorkToolBarActivity {
@Subscribe(threadMode = ThreadMode.MAIN)
public void onMessageEvent(ModifyCarEvent event) {
changeNumAndPrice();
changeNumAndPrice(event.isNeedRefresh());
}
private void changeNumAndPrice() {
private void changeNumAndPrice(boolean isNeedRefresh) {
tvNum.setText("共 ".concat(productList.size() + "").concat(" 件"));
String allPrice = "";
for (ProductBean.RecordsBean recordsBean : productList) {
allPrice = MathUtils.add(allPrice, MathUtils.multiply(recordsBean.getCarNum(), MathUtils.converData(recordsBean.getInternalPrice(), 3), 3), 3);
}
tvPrice.setText("总计: ¥ ".concat(allPrice));
checkNum();
if (isNeedRefresh)
checkNum();
}
/**
......@@ -237,7 +238,7 @@ public class StoreSaleCarActivity extends WorkToolBarActivity {
} else {
warningFlag = 0;
}
productAdapter.notifyDataSetChanged();
productAdapter.notifyData();
}
});
}
......
......@@ -29,6 +29,7 @@ import flexible.xd.android_base.utils.ToastUtil;
public class StoreCarAdapter extends BaseQuickAdapter<ProductBean.RecordsBean, BaseViewHolder> {
int type = 0;//1 确认订单页面 2 单数量无价格
private int curFocusPosition = -1;
public StoreCarAdapter(int layoutResId, List data) {
super(layoutResId, data);
......@@ -45,9 +46,9 @@ public class StoreCarAdapter extends BaseQuickAdapter<ProductBean.RecordsBean, B
helper.setText(R.id.tv_card, item.getSoleCode());
helper.setText(R.id.tv_card_name, item.getName());
helper.setText(R.id.tv_spec, item.getSpec());
helper.setText(R.id.tv_price, "¥".concat(MathUtils.converData(item.getInternalPrice(),3)));
helper.setText(R.id.tv_unit, MathUtils.converData(item.getWeight(),3).concat("吨"));
helper.setText(R.id.tv_all_price, MathUtils.multiply(item.getCarNum(), MathUtils.converData(item.getInternalPrice(),3), 3));
helper.setText(R.id.tv_price, "¥".concat(MathUtils.converData(item.getInternalPrice(), 3)));
helper.setText(R.id.tv_unit, MathUtils.converData(item.getWeight(), 3).concat("吨"));
helper.setText(R.id.tv_all_price, MathUtils.multiply(item.getCarNum(), MathUtils.converData(item.getInternalPrice(), 3), 3));
if (type == 1) {
helper.addOnClickListener(R.id.rl_choose_dep);
helper.addOnClickListener(R.id.rl_upload);
......@@ -58,33 +59,41 @@ public class StoreCarAdapter extends BaseQuickAdapter<ProductBean.RecordsBean, B
helper.setText(R.id.tv_upload, "已上传,点击替换");
}
} else if (type == 2) {
helper.setGone(R.id.tv_desc, item.getFlag()==1);
helper.setGone(R.id.tv_desc, item.getFlag() == 1);
helper.addOnClickListener(R.id.tv_delete);
AddAndReduceView num = helper.getView(R.id.ar_num);
num.setOnNumberChangedListener(new AddAndReduceView.OnNumberChangedListener() {
@Override
public void OnNumberChanged(String vs) {
if (!TextUtils.equals(vs,item.getCarNum())){
if (!TextUtils.equals(vs, item.getCarNum())) {
item.setCarNum(vs);
helper.setText(R.id.tv_all_price, MathUtils.multiply(vs , MathUtils.converData(item.getInternalPrice(),3), 3));
EventBus.getDefault().post(new ModifyCarEvent(JSON.toJSONString(getData())));
helper.setText(R.id.tv_all_price, MathUtils.multiply(vs, MathUtils.converData(item.getInternalPrice(), 3), 3));
EventBus.getDefault().post(new ModifyCarEvent(JSON.toJSONString(getData()), true));
}
}
});
EditText etPrice = helper.getView(R.id.et_price);
helper.setGone(R.id.ll_price, false);
num.setNumber(item.getCarNum());
num.setNumFocusListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
curFocusPosition = helper.getAdapterPosition();
}
}
});
} else {
helper.setGone(R.id.tv_desc, item.getFlag()==1);
helper.setGone(R.id.tv_desc, item.getFlag() == 1);
helper.addOnClickListener(R.id.tv_delete);
AddAndReduceView num = helper.getView(R.id.ar_num);
num.setOnNumberChangedListener(new AddAndReduceView.OnNumberChangedListener() {
@Override
public void OnNumberChanged(String vs) {
if (!TextUtils.equals(vs,item.getCarNum())){
if (!TextUtils.equals(vs, item.getCarNum())) {
item.setCarNum(vs);
helper.setText(R.id.tv_all_price, MathUtils.multiply(vs , MathUtils.converData(item.getInternalPrice(),3), 3));
EventBus.getDefault().post(new ModifyCarEvent(JSON.toJSONString(getData())));
helper.setText(R.id.tv_all_price, MathUtils.multiply(vs, MathUtils.converData(item.getInternalPrice(), 3), 3));
EventBus.getDefault().post(new ModifyCarEvent(JSON.toJSONString(getData()), true));
}
}
});
......@@ -108,14 +117,30 @@ public class StoreCarAdapter extends BaseQuickAdapter<ProductBean.RecordsBean, B
ToastUtil.showShort("请输入销售单价");
return;
}
if (!TextUtils.equals(s.toString(),item.getCarPrice())){
if (!TextUtils.equals(s.toString(), item.getCarPrice())) {
item.setCarPrice(s.toString());
helper.setText(R.id.tv_all_price, MathUtils.multiply(item.getCarNum(), MathUtils.converData(item.getInternalPrice(),3), 3));
helper.setText(R.id.tv_all_price, MathUtils.multiply(item.getCarNum(), MathUtils.converData(item.getInternalPrice(), 3), 3));
EventBus.getDefault().post(new ModifyCarEvent(JSON.toJSONString(getData())));
}
}
});
num.setNumber(item.getCarNum());
num.setNumFocusListener(new View.OnFocusChangeListener() {
@Override
public void onFocusChange(View v, boolean hasFocus) {
if (hasFocus) {
curFocusPosition = helper.getAdapterPosition();
}
}
});
}
}
public void notifyData() {
notifyDataSetChanged();
if (curFocusPosition != -1) {
AddAndReduceView num = (AddAndReduceView) getViewByPosition(curFocusPosition,R.id.ar_num);
num.setNumFouce();
}
}
}
......
......@@ -788,12 +788,10 @@ public class WorkUtils {
//小数处理
int decimalsLength = numbers[1].length();
if (decimalsLength > POINTER_LENGTH) {
curSelection = editText.getSelectionEnd();
// curSelection = editText.getSelectionEnd();
editText.setText(number.substring(0, numbers[0].length() + 1 + POINTER_LENGTH));
editText.setSelection(editText.getText().length());
editText.setSelection(editText.length());
}
}else {
}
}
......
......@@ -2,6 +2,7 @@ package com.wd.workoffice.widget;
import android.content.Context;
import android.text.Editable;
import android.text.InputType;
import android.text.TextWatcher;
import android.util.AttributeSet;
import android.view.LayoutInflater;
......@@ -25,7 +26,7 @@ public class AddAndReduceView extends LinearLayout implements View.OnClickListen
private final Button remove;
private final EditText tvNum;
private String num = "0";
private double maxNum = 10000f;
private double maxNum = Double.MAX_VALUE;
public AddAndReduceView(Context context, AttributeSet attrs) {
super(context, attrs);
......@@ -33,7 +34,7 @@ public class AddAndReduceView extends LinearLayout implements View.OnClickListen
add = findViewById(R.id.btn_add);
remove = findViewById(R.id.btn_reduce);
tvNum = findViewById(R.id.tv_num);
// tvNum.setInputType(InputType.TYPE_CLASS_NUMBER | InputType.TYPE_NUMBER_FLAG_DECIMAL | InputType.TYPE_NUMBER_VARIATION_NORMAL);
add.setOnClickListener(this);
remove.setOnClickListener(this);
tvNum.addTextChangedListener(new TextWatcher() {
......@@ -71,6 +72,7 @@ public class AddAndReduceView extends LinearLayout implements View.OnClickListen
mOnNumberChangedListener.OnNumberChanged(num);
return;
}
tvNum.setSelection(num.length());
// if (new BigDecimal(Double.valueOf(num)).compareTo(new BigDecimal(maxNum)) == 0) {
// ToastUtil.showShort("目前已选择最大数量");
// return;
......@@ -115,10 +117,8 @@ public class AddAndReduceView extends LinearLayout implements View.OnClickListen
ToastUtil.showShort("目前已选择最大数量");
return;
}
// num = MathUtils.add(num, "1", 3);
tvNum.setText(MathUtils.add(num, "1", 3));
if (mOnNumberChangedListener != null)
mOnNumberChangedListener.OnNumberChanged(num);
String add = MathUtils.add(num, "1", 3);
tvNum.setText(add);
break;
case R.id.btn_reduce:
if (Double.valueOf(num) <= 1d) {
......@@ -129,7 +129,6 @@ public class AddAndReduceView extends LinearLayout implements View.OnClickListen
if (mOnNumberChangedListener != null)
mOnNumberChangedListener.OnNumberChanged(String.valueOf(num));
}
break;
}
}
......@@ -151,4 +150,13 @@ public class AddAndReduceView extends LinearLayout implements View.OnClickListen
public void setOnNumberChangedListener(OnNumberChangedListener onNumberChangedListener) {
mOnNumberChangedListener = onNumberChangedListener;
}
public void setNumFocusListener(OnFocusChangeListener listener){
tvNum.setOnFocusChangeListener(listener);
}
public void setNumFouce(){
tvNum.setFocusable(true);
tvNum.setSelection(tvNum.length());
}
}
Markdown 格式
0%
您添加了 0 到此讨论。请谨慎行事。
请先完成此评论的编辑!
注册 或者 后发表评论