/
ViewHolderImpl.java
215 lines (169 loc) · 5.49 KB
/
ViewHolderImpl.java
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
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
package com.simple.commonadapter.viewholders;
import android.annotation.TargetApi;
import android.graphics.Bitmap;
import android.graphics.drawable.Drawable;
import android.net.Uri;
import android.util.SparseArray;
import android.view.View;
import android.widget.AdapterView;
import android.widget.Checkable;
import android.widget.ImageView;
import android.widget.ProgressBar;
import android.widget.RatingBar;
import android.widget.TextView;
/**
* ViewHolder操作子视图的实现类
* Created by mrsimple on 29/9/15.
*/
public class ViewHolderImpl {
/**
* 缓存子视图,key为view id, 值为View。
*/
private SparseArray<View> mCahceViews = new SparseArray<View>();
/**
* Item View
*/
View mItemView;
/**
* @param itemView
*/
ViewHolderImpl(View itemView) {
mItemView = itemView;
}
public View getItemView() {
return mItemView;
}
/**
* @param viewId
* @param <T>
* @return
*/
public <T extends View> T findViewById(int viewId) {
View target = mCahceViews.get(viewId);
if (target == null) {
target = mItemView.findViewById(viewId);
mCahceViews.put(viewId, target);
}
return (T) target;
}
public void setText(int viewId, int stringId) {
TextView textView = findViewById(viewId);
textView.setText(stringId);
}
public void setText(int viewId, String text) {
TextView textView = findViewById(viewId);
textView.setText(text);
}
public void setTextColor(int viewId, int color) {
TextView textView = findViewById(viewId);
textView.setTextColor(color);
}
/**
* @param viewId
* @param color
*/
public void setBackgroundColor(int viewId, int color) {
View target = findViewById(viewId);
target.setBackgroundColor(color);
}
/**
* @param viewId
* @param resId
*/
public void setBackgroundResource(int viewId, int resId) {
View target = findViewById(viewId);
target.setBackgroundResource(resId);
}
/**
* @param viewId
* @param drawable
*/
public void setBackgroundDrawable(int viewId, Drawable drawable) {
View target = findViewById(viewId);
target.setBackgroundDrawable(drawable);
}
/**
* @param viewId
* @param drawable
*/
@TargetApi(16)
public void setBackground(int viewId, Drawable drawable) {
View target = findViewById(viewId);
target.setBackground(drawable);
}
public void setImageBitmap(int viewId, Bitmap bitmap) {
ImageView target = findViewById(viewId);
target.setImageBitmap(bitmap);
}
public void setImageResource(int viewId, int resId) {
ImageView target = findViewById(viewId);
target.setImageResource(resId);
}
public void setImageDrawable(int viewId, Drawable drawable) {
ImageView target = findViewById(viewId);
target.setImageDrawable(drawable);
}
public void setImageDrawable(int viewId, Uri uri) {
ImageView target = findViewById(viewId);
target.setImageURI(uri);
}
@TargetApi(16)
public void setImageAlpha(int viewId, int alpha) {
ImageView target = findViewById(viewId);
target.setImageAlpha(alpha);
}
public void setChecked(int viewId, boolean checked) {
Checkable checkable = findViewById(viewId);
checkable.setChecked(checked);
}
public void setProgress(int viewId, int progress) {
ProgressBar view = findViewById(viewId);
view.setProgress(progress);
}
public void setProgress(int viewId, int progress, int max) {
ProgressBar view = findViewById(viewId);
view.setMax(max);
view.setProgress(progress);
}
public void setMax(int viewId, int max) {
ProgressBar view = findViewById(viewId);
view.setMax(max);
}
public void setRating(int viewId, float rating) {
RatingBar view = findViewById(viewId);
view.setRating(rating);
}
public void setVisibility(int viewId, int visible) {
View view = findViewById(viewId);
view.setVisibility(visible);
}
public void setRating(int viewId, float rating, int max) {
RatingBar view = findViewById(viewId);
view.setMax(max);
view.setRating(rating);
}
public void setOnClickListener(int viewId, View.OnClickListener listener) {
View view = findViewById(viewId);
view.setOnClickListener(listener);
}
public void setOnTouchListener(int viewId, View.OnTouchListener listener) {
View view = findViewById(viewId);
view.setOnTouchListener(listener);
}
public void setOnLongClickListener(int viewId, View.OnLongClickListener listener) {
View view = findViewById(viewId);
view.setOnLongClickListener(listener);
}
public void setOnItemClickListener(int viewId, AdapterView.OnItemClickListener listener) {
AdapterView view = findViewById(viewId);
view.setOnItemClickListener(listener);
}
public void setOnItemLongClickListener(int viewId, AdapterView.OnItemLongClickListener listener) {
AdapterView view = findViewById(viewId);
view.setOnItemLongClickListener(listener);
}
public void setOnItemSelectedClickListener(int viewId, AdapterView.OnItemSelectedListener listener) {
AdapterView view = findViewById(viewId);
view.setOnItemSelectedListener(listener);
}
}