|
|
@@ -5,7 +5,6 @@ import android.support.annotation.LayoutRes;
|
|
|
import android.support.annotation.NonNull;
|
|
|
import android.support.v7.widget.RecyclerView;
|
|
|
import android.text.Editable;
|
|
|
-import android.text.TextUtils;
|
|
|
import android.view.LayoutInflater;
|
|
|
import android.view.View;
|
|
|
import android.view.ViewGroup;
|
|
|
@@ -22,180 +21,53 @@ import com.core.widget.listener.EditChangeListener;
|
|
|
import com.core.widget.view.MyGridView;
|
|
|
import com.core.widget.view.SwitchView;
|
|
|
import com.me.imageloader.ImageLoaderUtil;
|
|
|
+import com.modular.apputils.adapter.BillAdapter;
|
|
|
import com.modular.apputils.model.BillGroupModel;
|
|
|
import com.modular.apputils.utils.BillTypeChangeUtils;
|
|
|
import com.modular.apputils.widget.VeriftyDialog;
|
|
|
import com.uas.appworks.R;
|
|
|
|
|
|
-import java.util.ArrayList;
|
|
|
import java.util.List;
|
|
|
|
|
|
-public class CustomerBillInputAdapter extends RecyclerView.Adapter<CustomerBillInputAdapter.BaseViewHolder> {
|
|
|
+public class CustomerBillInputAdapter extends BillAdapter {
|
|
|
+
|
|
|
|
|
|
- private Context ct;
|
|
|
- private List<BillGroupModel> mBillGroupModels;
|
|
|
- private List<BillGroupModel.BillModel> mShowBillModels;
|
|
|
- private CustomerBillInputAdapter.OnAdapterListener mOnAdapterListener;
|
|
|
private boolean addContact = true;//保存后继续新增联系人
|
|
|
|
|
|
- public CustomerBillInputAdapter(Context ct, List<BillGroupModel> mBillGroupModels, CustomerBillInputAdapter.OnAdapterListener mOnAdapterListener) {
|
|
|
- this.ct = ct;
|
|
|
- this.mBillGroupModels = mBillGroupModels;
|
|
|
- this.mOnAdapterListener = mOnAdapterListener;
|
|
|
- changeBillModel();
|
|
|
+ public CustomerBillInputAdapter(Context ct, List<BillGroupModel> mBillGroupModels, BillAdapter.OnAdapterListener mOnAdapterListener) {
|
|
|
+ super(ct, mBillGroupModels, mOnAdapterListener);
|
|
|
}
|
|
|
|
|
|
public boolean isAddContact() {
|
|
|
return addContact;
|
|
|
}
|
|
|
|
|
|
- public void updateBillModelValues(int position, String values, String display) {
|
|
|
- if (position >= 0 && position < ListUtils.getSize(mShowBillModels)) {
|
|
|
- mShowBillModels.get(position).setValue(values);
|
|
|
- mShowBillModels.get(position).setDisplay(display);
|
|
|
- notifyItemChanged(position);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public void addBillModelData(int position, String values, String display) {
|
|
|
- if (position >= 0 && position < ListUtils.getSize(mShowBillModels)) {
|
|
|
- if (mShowBillModels.get(position).getLocalDatas() == null) {
|
|
|
- mShowBillModels.get(position).setLocalDatas(new ArrayList<BillGroupModel.LocalData>());
|
|
|
- }
|
|
|
- BillGroupModel.LocalData data = new BillGroupModel.LocalData();
|
|
|
- data.value = values;
|
|
|
- data.display = display;
|
|
|
- mShowBillModels.get(position).getLocalDatas().add(data);
|
|
|
- notifyItemChanged(position);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- public void setBillGroupModels(List<BillGroupModel> mBillGroupModels) {
|
|
|
- this.mBillGroupModels = mBillGroupModels;
|
|
|
- changeBillModel();
|
|
|
- }
|
|
|
-
|
|
|
- /**
|
|
|
- * 当外界的因素引起mBillGroupModels变化时候,通过遍历将mBillGroupModels转成mShowBillModels进行显示
|
|
|
- */
|
|
|
- private void changeBillModel() {
|
|
|
- if (mShowBillModels == null) {
|
|
|
- mShowBillModels = new ArrayList<>();
|
|
|
- } else {
|
|
|
- mShowBillModels.clear();
|
|
|
- }
|
|
|
- for (int i = 0; i < mBillGroupModels.size(); i++) {
|
|
|
- BillGroupModel e = mBillGroupModels.get(i);
|
|
|
- if (e != null && e.getShowBillFields() != null && !e.getShowBillFields().isEmpty()) {
|
|
|
- if (!TextUtils.isEmpty(e.getGroup())) {
|
|
|
- BillGroupModel.BillModel mTitleBillModel = new BillGroupModel.BillModel();
|
|
|
- mTitleBillModel.setGroupIndex(i);
|
|
|
- mTitleBillModel.setType(BillGroupModel.Constants.TYPE_TITLE);
|
|
|
- mTitleBillModel.setCaption(e.getGroup());
|
|
|
- mTitleBillModel.setAllowBlank(e.isDeleteAble() ? "T" : "F");
|
|
|
- mShowBillModels.add(mTitleBillModel);
|
|
|
- }
|
|
|
- mShowBillModels.addAll(e.getShowBillFields());
|
|
|
- if (!e.isForm() && e.isLastInType()) {
|
|
|
- mShowBillModels.add(getAddModel(i));
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private BillGroupModel.BillModel getAddModel(int index) {
|
|
|
- BillGroupModel.BillModel mTitleBillModel = new BillGroupModel.BillModel();
|
|
|
- mTitleBillModel.setGroupIndex(index);
|
|
|
- mTitleBillModel.setType(BillGroupModel.Constants.TYPE_ADD);
|
|
|
- mTitleBillModel.setCaption("添加单据");
|
|
|
- return mTitleBillModel;
|
|
|
- }
|
|
|
-
|
|
|
- public List<BillGroupModel> getBillGroupModels() {
|
|
|
- return mBillGroupModels;
|
|
|
- }
|
|
|
-
|
|
|
- public BillGroupModel getBillGroupModel(int position) {
|
|
|
- if (position >= 0 && ListUtils.getSize(mBillGroupModels) > position) {
|
|
|
- return mBillGroupModels.get(position);
|
|
|
- } else {
|
|
|
- return null;
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
@Override
|
|
|
public int getItemViewType(int position) {
|
|
|
- if (mShowBillModels != null && mShowBillModels.size() > position) {
|
|
|
- return BillTypeChangeUtils.getItemViewType(mShowBillModels.get(position).getType());
|
|
|
+ if (ListUtils.getSize(getShowBillModels()) > position) {
|
|
|
+ return BillTypeChangeUtils.getItemViewType(getShowBillModels().get(position).getType());
|
|
|
} else {
|
|
|
return 220;
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- @NonNull
|
|
|
- @Override
|
|
|
- public CustomerBillInputAdapter.BaseViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
|
|
- CustomerBillInputAdapter.BaseViewHolder viewHolder = null;
|
|
|
- switch (viewType) {
|
|
|
- case 0:
|
|
|
- viewHolder = new CustomerBillInputAdapter.TitleViewHolder(parent, R.layout.item_bill_title);
|
|
|
- break;
|
|
|
- case 1:
|
|
|
- viewHolder = new CustomerBillInputAdapter.InputViewHolder(parent, R.layout.item_bill_input_select);
|
|
|
- break;
|
|
|
- case 2:
|
|
|
- viewHolder = new CustomerBillInputAdapter.EnclosureViewHolder(parent, R.layout.item_bill_enclosure);
|
|
|
- break;//附件类型
|
|
|
- case 110:
|
|
|
- viewHolder = new CustomerBillInputAdapter.AddViewHolder(parent, R.layout.item_bill_add);
|
|
|
- break;
|
|
|
- case 220://个性化添加是否保存后继续添加联系人
|
|
|
- viewHolder = new CustomerBillInputAdapter.AddcontentViewHolder(parent, R.layout.item_customer_bill_add_contact);
|
|
|
-
|
|
|
- break;
|
|
|
- default:
|
|
|
- viewHolder = new CustomerBillInputAdapter.BaseViewHolder(parent, R.layout.item_bill_title) {
|
|
|
- @Override
|
|
|
- void initView(View view) {
|
|
|
-
|
|
|
- }
|
|
|
- };
|
|
|
- }
|
|
|
- return viewHolder;
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
@Override
|
|
|
public int getItemCount() {
|
|
|
- return mShowBillModels == null ? 1 : mShowBillModels.size() + 1;
|
|
|
+ return super.getItemCount()+1;
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- private LayoutInflater mLayoutInflater;
|
|
|
-
|
|
|
- public LayoutInflater getLayoutInflater() {
|
|
|
- if (mLayoutInflater == null) {
|
|
|
- mLayoutInflater = LayoutInflater.from(ct);
|
|
|
- }
|
|
|
- return mLayoutInflater;
|
|
|
- }
|
|
|
-
|
|
|
- abstract class BaseViewHolder extends RecyclerView.ViewHolder {
|
|
|
-
|
|
|
- public BaseViewHolder(ViewGroup parent, @LayoutRes int layoutId) {
|
|
|
- this(getLayoutInflater().inflate(layoutId, parent, false));
|
|
|
- }
|
|
|
-
|
|
|
- abstract void initView(View view);
|
|
|
-
|
|
|
- public BaseViewHolder(View itemView) {
|
|
|
- super(itemView);
|
|
|
- initView(itemView);
|
|
|
+ @NonNull
|
|
|
+ @Override
|
|
|
+ public BillAdapter.BaseViewHolder onCreateViewHolder(@NonNull ViewGroup parent, int viewType) {
|
|
|
+ if (viewType == 220) {
|
|
|
+ return new CustomerBillInputAdapter.AddcontentViewHolder(parent, R.layout.item_customer_bill_add_contact);
|
|
|
+ } else {
|
|
|
+ return super.onCreateViewHolder(parent, viewType);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
-
|
|
|
- class AddcontentViewHolder extends CustomerBillInputAdapter.BaseViewHolder {
|
|
|
+ class AddcontentViewHolder extends BillAdapter.BaseViewHolder {
|
|
|
private SwitchView saveContactSv;
|
|
|
|
|
|
public AddcontentViewHolder(ViewGroup parent, int layoutId) {
|
|
|
@@ -203,104 +75,22 @@ public class CustomerBillInputAdapter extends RecyclerView.Adapter<CustomerBillI
|
|
|
}
|
|
|
|
|
|
@Override
|
|
|
- void initView(View view) {
|
|
|
+ public void initView(View view) {
|
|
|
saveContactSv = (SwitchView) view.findViewById(R.id.saveContactSv);
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- class AddViewHolder extends CustomerBillInputAdapter.BaseViewHolder {
|
|
|
- private TextView addTv;
|
|
|
-
|
|
|
- public AddViewHolder(ViewGroup parent, int layoutId) {
|
|
|
- super(parent, layoutId);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- void initView(View view) {
|
|
|
- addTv = (TextView) view.findViewById(R.id.addTv);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //选择和输入类型
|
|
|
- class InputViewHolder extends CustomerBillInputAdapter.BaseViewHolder {
|
|
|
- private TextView captionTv;
|
|
|
- private TextView muchInputTv;
|
|
|
- private ImageView selectIv;
|
|
|
- private EditText valuesEd;
|
|
|
-
|
|
|
- public InputViewHolder(ViewGroup parent, int layoutId) {
|
|
|
- super(parent, layoutId);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- void initView(View itemView) {
|
|
|
- captionTv = (TextView) itemView.findViewById(R.id.captionTv);
|
|
|
- muchInputTv = (TextView) itemView.findViewById(R.id.muchInputTv);
|
|
|
- selectIv = (ImageView) itemView.findViewById(R.id.selectIv);
|
|
|
- valuesEd = (EditText) itemView.findViewById(R.id.valuesEd);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- //附件类型
|
|
|
- class EnclosureViewHolder extends CustomerBillInputAdapter.BaseViewHolder {
|
|
|
- private TextView captionTv;
|
|
|
- private TextView muchInputTv;
|
|
|
- private MyGridView ffGv;
|
|
|
-
|
|
|
- public EnclosureViewHolder(ViewGroup parent, int layoutId) {
|
|
|
- super(parent, layoutId);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- void initView(View itemView) {
|
|
|
- captionTv = (TextView) itemView.findViewById(R.id.captionTv);
|
|
|
- muchInputTv = (TextView) itemView.findViewById(R.id.muchInputTv);
|
|
|
- ffGv = (MyGridView) itemView.findViewById(R.id.ffGv);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- class TitleViewHolder extends CustomerBillInputAdapter.BaseViewHolder {
|
|
|
- private TextView tvTitle;
|
|
|
- private TextView deleteTv;
|
|
|
-
|
|
|
- public TitleViewHolder(ViewGroup parent, int layoutId) {
|
|
|
- super(parent, layoutId);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- void initView(View view) {
|
|
|
- tvTitle = (TextView) view.findViewById(R.id.tv_title);
|
|
|
- deleteTv = (TextView) view.findViewById(R.id.deleteTv);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
|
|
|
@Override
|
|
|
public void onBindViewHolder(@NonNull CustomerBillInputAdapter.BaseViewHolder holder, int position) {
|
|
|
- BillGroupModel.BillModel model = null;
|
|
|
- if (mShowBillModels != null && mShowBillModels.size() > position) {
|
|
|
- model = mShowBillModels.get(position);
|
|
|
- }
|
|
|
- try {
|
|
|
- if (holder instanceof CustomerBillInputAdapter.InputViewHolder) {
|
|
|
- bindInputView((CustomerBillInputAdapter.InputViewHolder) holder, model, position);
|
|
|
- } else if (holder instanceof CustomerBillInputAdapter.TitleViewHolder) {
|
|
|
- bindTitleView((CustomerBillInputAdapter.TitleViewHolder) holder, model, position);
|
|
|
- } else if (holder instanceof CustomerBillInputAdapter.AddViewHolder) {
|
|
|
- bindAddView((CustomerBillInputAdapter.AddViewHolder) holder, model, position);
|
|
|
- } else if (holder instanceof CustomerBillInputAdapter.EnclosureViewHolder) {
|
|
|
- bindEnclosureView((CustomerBillInputAdapter.EnclosureViewHolder) holder, model, position);
|
|
|
- } else if (holder instanceof AddcontentViewHolder) {
|
|
|
- bindAddContentView((AddcontentViewHolder) holder, model, position);
|
|
|
- }
|
|
|
- } catch (Exception e) {
|
|
|
- LogUtil.i("gong", position + " e=" + e.getMessage());
|
|
|
+ if (holder instanceof AddcontentViewHolder) {
|
|
|
+ bindAddContentView((AddcontentViewHolder) holder);
|
|
|
+ } else {
|
|
|
+ super.onBindViewHolder(holder, position);
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
|
|
|
- private void bindAddContentView(AddcontentViewHolder holder, BillGroupModel.BillModel model, int position) {
|
|
|
+ public void bindAddContentView(AddcontentViewHolder holder) {
|
|
|
holder.saveContactSv.setOnCheckedChangeListener(new SwitchView.OnCheckedChangeListener() {
|
|
|
@Override
|
|
|
public void onCheckedChanged(View view, boolean isChecked) {
|
|
|
@@ -309,264 +99,5 @@ public class CustomerBillInputAdapter extends RecyclerView.Adapter<CustomerBillI
|
|
|
});
|
|
|
}
|
|
|
|
|
|
- //绑定附件字段
|
|
|
- private void bindEnclosureView(CustomerBillInputAdapter.EnclosureViewHolder holder, BillGroupModel.BillModel model, int position) {
|
|
|
- if (model != null) {
|
|
|
- holder.captionTv.setText(model.getCaption());
|
|
|
- holder.muchInputTv.setVisibility(model.getAllowBlank().equals("T") ? View.GONE : View.VISIBLE);
|
|
|
- CustomerBillInputAdapter.EnclosureAdapter mEnclosureAdapter = null;
|
|
|
- if (holder.ffGv.getTag(R.id.tag_key) != null && holder.ffGv.getTag(R.id.tag_key) instanceof CustomerBillInputAdapter.EnclosureAdapter) {
|
|
|
- mEnclosureAdapter = (CustomerBillInputAdapter.EnclosureAdapter) holder.ffGv.getTag(R.id.tag_key);
|
|
|
- mEnclosureAdapter.setLocalDatas(model.getLocalDatas());
|
|
|
- mEnclosureAdapter.setPosition(position);
|
|
|
- } else {
|
|
|
- mEnclosureAdapter = new CustomerBillInputAdapter.EnclosureAdapter(position, model.getLocalDatas());
|
|
|
- }
|
|
|
- holder.ffGv.setAdapter(mEnclosureAdapter);
|
|
|
- holder.ffGv.setTag(model);
|
|
|
- holder.ffGv.setTag(R.id.tag_key2, position);
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- private void bindAddView(CustomerBillInputAdapter.AddViewHolder mAddViewHolder, BillGroupModel.BillModel model, int position) throws Exception {
|
|
|
- if (model != null) {
|
|
|
- mAddViewHolder.addTv.setTag(model.getGroupIndex());
|
|
|
- mAddViewHolder.addTv.setOnClickListener(mOnClickListener);
|
|
|
- }
|
|
|
- }
|
|
|
|
|
|
- private void bindInputView(CustomerBillInputAdapter.InputViewHolder mInputViewHolder, BillGroupModel.BillModel model, int position) throws Exception {
|
|
|
- if (model != null) {
|
|
|
- if (mInputViewHolder.valuesEd.getTag() != null && mInputViewHolder.valuesEd.getTag() instanceof CustomerBillInputAdapter.TextChangListener) {
|
|
|
- mInputViewHolder.valuesEd.removeTextChangedListener((CustomerBillInputAdapter.TextChangListener) mInputViewHolder.valuesEd.getTag());
|
|
|
- }
|
|
|
- mInputViewHolder.captionTv.setText(model.getCaption());
|
|
|
- mInputViewHolder.muchInputTv.setVisibility(model.getAllowBlank().equals("F") ? View.VISIBLE : View.GONE);
|
|
|
- mInputViewHolder.valuesEd.setText(model.getValue());
|
|
|
- if (model.getReadOnly().equals("T")) {
|
|
|
- mInputViewHolder.valuesEd.setFocusable(false);
|
|
|
- mInputViewHolder.valuesEd.setClickable(true);
|
|
|
- mInputViewHolder.valuesEd.setOnClickListener(null);
|
|
|
- } else if (BillTypeChangeUtils.isSelect(model.getType())) {
|
|
|
- //选择类型
|
|
|
- mInputViewHolder.valuesEd.setHint("请选择");
|
|
|
- mInputViewHolder.valuesEd.setFocusable(false);
|
|
|
- mInputViewHolder.valuesEd.setClickable(true);
|
|
|
- mInputViewHolder.selectIv.setVisibility(View.VISIBLE);
|
|
|
- mInputViewHolder.valuesEd.setTag(R.id.tag, position);
|
|
|
- mInputViewHolder.valuesEd.setTag(R.id.tag2, model);
|
|
|
- mInputViewHolder.valuesEd.setOnClickListener(mOnClickListener);
|
|
|
- } else {
|
|
|
- //输入类型
|
|
|
- mInputViewHolder.valuesEd.setHint("请输入");
|
|
|
- mInputViewHolder.selectIv.setVisibility(View.GONE);
|
|
|
- mInputViewHolder.valuesEd.setFocusable(true);
|
|
|
- mInputViewHolder.valuesEd.setClickable(false);
|
|
|
- mInputViewHolder.valuesEd.setFocusableInTouchMode(true);
|
|
|
- CustomerBillInputAdapter.TextChangListener mTextChangListener = new CustomerBillInputAdapter.TextChangListener(mInputViewHolder.valuesEd, position);
|
|
|
- mInputViewHolder.valuesEd.setTag(mTextChangListener);
|
|
|
- mInputViewHolder.valuesEd.addTextChangedListener(mTextChangListener);
|
|
|
- mInputViewHolder.valuesEd.setOnClickListener(null);
|
|
|
- }
|
|
|
-
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private void bindTitleView(CustomerBillInputAdapter.TitleViewHolder mTitleViewHolder, BillGroupModel.BillModel model, int position) throws Exception {
|
|
|
- if (model != null) {
|
|
|
- if (model.getAllowBlank().equals("T")) {
|
|
|
- mTitleViewHolder.deleteTv.setVisibility(View.VISIBLE);
|
|
|
- mTitleViewHolder.deleteTv.setTag(model.getGroupIndex());
|
|
|
- mTitleViewHolder.deleteTv.setOnClickListener(mOnClickListener);
|
|
|
- } else {
|
|
|
- mTitleViewHolder.deleteTv.setVisibility(View.GONE);
|
|
|
- mTitleViewHolder.deleteTv.setOnClickListener(null);
|
|
|
- }
|
|
|
- mTitleViewHolder.tvTitle.setText(model.getCaption());
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private AdapterView.OnItemClickListener mOnItemClickListener = new AdapterView.OnItemClickListener() {
|
|
|
- @Override
|
|
|
- public void onItemClick(AdapterView<?> adapterView, View view, int position, long id) {
|
|
|
- if (mOnAdapterListener != null && adapterView.getTag() != null && adapterView.getTag(R.id.tag_key2) != null) {
|
|
|
- if (adapterView.getTag() instanceof BillGroupModel.BillModel && adapterView.getTag(R.id.tag_key2) instanceof Integer) {
|
|
|
- int itemIndex = (int) adapterView.getTag(R.id.tag_key2);
|
|
|
- BillGroupModel.BillModel model = (BillGroupModel.BillModel) adapterView.getTag();
|
|
|
- mOnAdapterListener.toEnclosureSelect(position);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- };
|
|
|
- private View.OnClickListener mOnClickListener = new View.OnClickListener() {
|
|
|
- @Override
|
|
|
- public void onClick(View view) {
|
|
|
- if (view.getId() == R.id.deleteTv) {
|
|
|
- if (view.getTag() != null && view.getTag() instanceof Integer) {
|
|
|
- showDeleteGroup((Integer) view.getTag());
|
|
|
- }
|
|
|
- } else if (view.getId() == R.id.valuesEd) {
|
|
|
- if (mOnAdapterListener != null) {
|
|
|
- if (view.getTag(R.id.tag2) != null && view.getTag(R.id.tag2) instanceof BillGroupModel.BillModel) {
|
|
|
- int position = view.getTag(R.id.tag) != null && view.getTag(R.id.tag) instanceof Integer ? ((int) view.getTag(R.id.tag)) : 0;
|
|
|
- mOnAdapterListener.toSelect(position, (BillGroupModel.BillModel) view.getTag(R.id.tag2));
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- } else if (view.getId() == R.id.addTv) {
|
|
|
- if (view.getTag() != null && view.getTag() instanceof Integer) {
|
|
|
- int groupIndex = (int) view.getTag();
|
|
|
- BillGroupModel mBillGroupModel = mBillGroupModels.get(groupIndex);
|
|
|
- mBillGroupModel.setLastInType(false);
|
|
|
- BillGroupModel newBillGroupModel = new BillGroupModel();
|
|
|
- newBillGroupModel.setForm(mBillGroupModel.isForm());
|
|
|
- newBillGroupModel.setGroup(mBillGroupModel.getGroup());
|
|
|
- newBillGroupModel.setDeleteAble(true);
|
|
|
- newBillGroupModel.setLastInType(true);
|
|
|
- for (BillGroupModel.BillModel e : mBillGroupModel.getShowBillFields()) {
|
|
|
- newBillGroupModel.addShow(new BillGroupModel.BillModel(e));
|
|
|
- }
|
|
|
- mBillGroupModels.add(groupIndex + 1, newBillGroupModel);
|
|
|
- setBillGroupModels(mBillGroupModels);
|
|
|
- notifyDataSetChanged();
|
|
|
-
|
|
|
- }
|
|
|
- } else if (R.id.btn_del == view.getId()) {
|
|
|
- if (view.getTag(R.id.tag_key) != null && view.getTag(R.id.tag_key2) != null
|
|
|
- && view.getTag(R.id.tag_key) instanceof Integer && view.getTag(R.id.tag_key2) instanceof Integer) {
|
|
|
- int position = (int) view.getTag(R.id.tag_key2);//当前在主列表的item
|
|
|
- int index = (int) view.getTag(R.id.tag_key);//当前在子列表的item
|
|
|
- if (position >= 0 && position < ListUtils.getSize(mShowBillModels)
|
|
|
- && ListUtils.getSize(mShowBillModels.get(position).getLocalDatas()) > index) {
|
|
|
- mShowBillModels.get(position).getLocalDatas().remove(index);
|
|
|
- notifyItemChanged(position);
|
|
|
- }
|
|
|
- }
|
|
|
- } else if (R.id.content == view.getId()) {
|
|
|
- if (view.getTag(R.id.tag_key2) != null && view.getTag(R.id.tag_key2) instanceof Integer) {
|
|
|
- int position = (int) view.getTag(R.id.tag_key2);//当前在主列表的item
|
|
|
- if (mOnAdapterListener != null && position >= 0 && position < ListUtils.getSize(mShowBillModels)) {
|
|
|
- mOnAdapterListener.toEnclosureSelect(position);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- };
|
|
|
-
|
|
|
-
|
|
|
- private class TextChangListener extends EditChangeListener {
|
|
|
- EditText ed;
|
|
|
- private int position;
|
|
|
-
|
|
|
- public TextChangListener(EditText ed, int position) {
|
|
|
- this.ed = ed;
|
|
|
- this.position = position;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public void afterTextChanged(Editable s) {
|
|
|
- if (this.position >= 0 && mShowBillModels != null && mShowBillModels.size() > this.position && ed != null) {
|
|
|
- String valueEt = ed.getText().toString();
|
|
|
- mShowBillModels.get(this.position).setValue(valueEt == null ? "" : valueEt);
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- private void showDeleteGroup(final int groupIndex) {
|
|
|
- new VeriftyDialog.Builder(ct)
|
|
|
- .setTitle(ct.getString(R.string.app_name))
|
|
|
- .setContent("是否确认删除该单据?")
|
|
|
- .build(new VeriftyDialog.OnDialogClickListener() {
|
|
|
- @Override
|
|
|
- public void result(boolean clickSure) {
|
|
|
- if (clickSure) {
|
|
|
- if (mBillGroupModels != null && mBillGroupModels.size() > groupIndex && groupIndex >= 0) {
|
|
|
- boolean isLastItem = mBillGroupModels.get(groupIndex).isLastInType();
|
|
|
- if (isLastItem && groupIndex - 1 > 0 && !mBillGroupModels.get(groupIndex - 1).isForm()) {
|
|
|
- mBillGroupModels.get(groupIndex - 1).setLastInType(true);
|
|
|
- }
|
|
|
- mBillGroupModels.remove(groupIndex);
|
|
|
- setBillGroupModels(mBillGroupModels);
|
|
|
- notifyDataSetChanged();
|
|
|
- }
|
|
|
- }
|
|
|
- }
|
|
|
- });
|
|
|
-
|
|
|
- }
|
|
|
-
|
|
|
-
|
|
|
- public interface OnAdapterListener {
|
|
|
- void toSelect(int position, BillGroupModel.BillModel model);
|
|
|
-
|
|
|
- void toEnclosureSelect(int position);
|
|
|
- }
|
|
|
-
|
|
|
- private class EnclosureAdapter extends BaseAdapter {
|
|
|
- private int position;
|
|
|
- private List<BillGroupModel.LocalData> localDatas;
|
|
|
-
|
|
|
- public EnclosureAdapter(int position, List<BillGroupModel.LocalData> localDatas) {
|
|
|
- this.position = position;
|
|
|
- this.localDatas = localDatas;
|
|
|
- }
|
|
|
-
|
|
|
- public void setPosition(int position) {
|
|
|
- this.position = position;
|
|
|
- }
|
|
|
-
|
|
|
- public void setLocalDatas(List<BillGroupModel.LocalData> localDatas) {
|
|
|
- this.localDatas = localDatas;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public int getCount() {
|
|
|
- return ListUtils.getSize(localDatas) < 9 ? (ListUtils.getSize(localDatas) + 1) : ListUtils.getSize(localDatas);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public Object getItem(int i) {
|
|
|
- return localDatas.get(i);
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public long getItemId(int i) {
|
|
|
- return i;
|
|
|
- }
|
|
|
-
|
|
|
- @Override
|
|
|
- public View getView(int i, View view, ViewGroup viewGroup) {
|
|
|
- view = getLayoutInflater().inflate(R.layout.item_bill_enclosure_item, null);
|
|
|
- ImageView content = (ImageView) view.findViewById(R.id.content);
|
|
|
- TextView tvName = (TextView) view.findViewById(R.id.tv_name);
|
|
|
- Button btnDel = (Button) view.findViewById(R.id.btn_del);
|
|
|
- if (ListUtils.getSize(localDatas) > i) {
|
|
|
- BillGroupModel.LocalData data = localDatas.get(i);
|
|
|
- btnDel.setVisibility(View.VISIBLE);
|
|
|
- String name = data.value == null ? "" : data.value;
|
|
|
- tvName.setText(name);
|
|
|
- btnDel.setTag(R.id.tag_key2, position);
|
|
|
- btnDel.setTag(R.id.tag_key, i);
|
|
|
- btnDel.setOnClickListener(mOnClickListener);
|
|
|
- if (isImage(name)) {
|
|
|
- ImageLoaderUtil.getInstance().loadImage(data.display, content);
|
|
|
- }
|
|
|
- } else {
|
|
|
- tvName.setText("");
|
|
|
- btnDel.setVisibility(View.GONE);
|
|
|
- content.setImageResource(R.drawable.add_picture);
|
|
|
- content.setTag(R.id.tag_key2, position);
|
|
|
- content.setOnClickListener(mOnClickListener);
|
|
|
- }
|
|
|
- return view;
|
|
|
- }
|
|
|
- }
|
|
|
-
|
|
|
- private boolean isImage(String name) {
|
|
|
- return name.toUpperCase().endsWith("JPEG")
|
|
|
- || name.toUpperCase().endsWith("JPG")
|
|
|
- || name.toUpperCase().endsWith("PNG");
|
|
|
- }
|
|
|
}
|