DetailAmountAdapter.java
4.39 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
package com.huaheng.mobilewms.adapter;
import android.content.Context;
import android.text.Editable;
import android.text.TextUtils;
import android.text.TextWatcher;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.BaseAdapter;
import android.widget.ImageView;
import android.widget.TextView;
import com.huaheng.mobilewms.R;
import com.huaheng.mobilewms.bean.DetailBean;
import com.huaheng.mobilewms.view.AmountView;
import com.huaheng.mobilewms.view.DetailAmountView;
import java.util.ArrayList;
import java.util.List;
public class DetailAmountAdapter extends BaseAdapter {
private Context mContext;
private List<DetailBean> mList = new ArrayList<>();
private AmountChangeListener amountChangeListener;
public DetailAmountAdapter(Context mContext) {
this.mContext = mContext;
}
public List <DetailBean> getmList() {
return mList;
}
public void setmList(List <DetailBean> mList) {
this.mList = mList;
}
@Override
public int getCount() {
return mList.size();
}
@Override
public Object getItem(int i) {
return mList.get(i);
}
@Override
public long getItemId(int i) {
return i;
}
@Override
public View getView(final int position, View convertView, ViewGroup viewGroup) {
ViewHolder viewHolder = new ViewHolder();
if (convertView == null) {
convertView = LayoutInflater.from(mContext).inflate(R.layout.detail_amount_list_item, null);
ImageView detailView = (ImageView) convertView.findViewById(R.id.detailView);
TextView detailType = (TextView) convertView.findViewById(R.id.detailType);
TextView detailName = (TextView) convertView.findViewById(R.id.detailName);
TextView detailCode = (TextView) convertView.findViewById(R.id.detailCode);
DetailAmountView amountView = (DetailAmountView) convertView.findViewById(R.id.amountView);
viewHolder.icon = detailView;
viewHolder.type = detailType;
viewHolder.name = detailName;
viewHolder.code = detailCode;
viewHolder.amountView = amountView;
convertView.setTag(viewHolder);
} else {
viewHolder = (ViewHolder) convertView.getTag();
}
final DetailBean bean = (DetailBean) mList.get(position);
viewHolder.icon.setImageDrawable(bean.getDrawable());
viewHolder.type.setText(bean.getType());
viewHolder.name.setText(bean.getName());
viewHolder.code.setText(bean.getCode());
viewHolder.amountView.setMaxValue(bean.getMaxAmount());
if(amountChangeListener != null) {
viewHolder.amountView.setOnAmountChangeListener(new DetailAmountView.OnAmountChangeListener() {
@Override
public void onAmountChange(View view, int amount) {
amountChangeListener.onAmountChange(position, amount);
}
});
}
if (viewHolder.amountView.getTag() instanceof TextWatcher) {
viewHolder.amountView.etAmount.removeTextChangedListener((TextWatcher) viewHolder.amountView.getTag());
}
viewHolder.amountView.setAmount(bean.getAmount());
TextWatcher watcher = new TextWatcher() {
@Override
public void beforeTextChanged(CharSequence s, int start, int count, int after) {
}
@Override
public void onTextChanged(CharSequence s, int start, int before, int count) {
}
@Override
public void afterTextChanged(Editable s) {
if (TextUtils.isEmpty(s)) {
bean.setAmount(0);
} else {
bean.setAmount(Integer.parseInt(s.toString()));
}
}
};
viewHolder.amountView.etAmount.addTextChangedListener(watcher);
viewHolder.amountView.setTag(watcher);
return convertView;
}
public void setOnAmountListener(AmountChangeListener onAmountChangeListener) {
amountChangeListener = onAmountChangeListener;
}
public interface AmountChangeListener{
void onAmountChange(int id, int amount);
}
private class ViewHolder {
ImageView icon;
TextView type;
TextView name;
TextView code;
DetailAmountView amountView;
}
}