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

1.修改购物车焦点逻辑

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