summaryrefslogtreecommitdiff
path: root/core/java/android/widget/SimpleAdapter.java
diff options
context:
space:
mode:
authorThe Android Open Source Project <initial-contribution@android.com>2008-12-17 18:05:43 -0800
committerThe Android Open Source Project <initial-contribution@android.com>2008-12-17 18:05:43 -0800
commitf013e1afd1e68af5e3b868c26a653bbfb39538f8 (patch)
tree7ad6c8fd9c7b55f4b4017171dec1cb760bbd26bf /core/java/android/widget/SimpleAdapter.java
parente70cfafe580c6f2994c4827cd8a534aabf3eb05c (diff)
Code drop from //branches/cupcake/...@124589
Diffstat (limited to 'core/java/android/widget/SimpleAdapter.java')
-rw-r--r--core/java/android/widget/SimpleAdapter.java24
1 files changed, 19 insertions, 5 deletions
diff --git a/core/java/android/widget/SimpleAdapter.java b/core/java/android/widget/SimpleAdapter.java
index df52b6983b9d..261da9ff46a8 100644
--- a/core/java/android/widget/SimpleAdapter.java
+++ b/core/java/android/widget/SimpleAdapter.java
@@ -115,10 +115,22 @@ public class SimpleAdapter extends BaseAdapter implements Filterable {
View v;
if (convertView == null) {
v = mInflater.inflate(resource, parent, false);
+
+ final int[] to = mTo;
+ final int count = to.length;
+ final View[] holder = new View[count];
+
+ for (int i = 0; i < count; i++) {
+ holder[i] = v.findViewById(to[i]);
+ }
+
+ v.setTag(holder);
} else {
v = convertView;
}
+
bindView(position, v);
+
return v;
}
@@ -143,12 +155,14 @@ public class SimpleAdapter extends BaseAdapter implements Filterable {
return;
}
+ final ViewBinder binder = mViewBinder;
+ final View[] holder = (View[]) view.getTag();
final String[] from = mFrom;
final int[] to = mTo;
- final int len = to.length;
+ final int count = to.length;
- for (int i = 0; i < len; i++) {
- final View v = view.findViewById(to[i]);
+ for (int i = 0; i < count; i++) {
+ final View v = holder[i];
if (v != null) {
final Object data = dataSet.get(from[i]);
String text = data == null ? "" : data.toString();
@@ -157,8 +171,8 @@ public class SimpleAdapter extends BaseAdapter implements Filterable {
}
boolean bound = false;
- if (mViewBinder != null) {
- bound = mViewBinder.setViewValue(v, data, text);
+ if (binder != null) {
+ bound = binder.setViewValue(v, data, text);
}
if (!bound) {