diff options
| -rw-r--r-- | core/java/android/widget/SimpleAdapter.java | 6 | ||||
| -rw-r--r-- | core/java/android/widget/SimpleCursorAdapter.java | 7 |
2 files changed, 9 insertions, 4 deletions
diff --git a/core/java/android/widget/SimpleAdapter.java b/core/java/android/widget/SimpleAdapter.java index 093c24e0ca58..9dd4d151df1a 100644 --- a/core/java/android/widget/SimpleAdapter.java +++ b/core/java/android/widget/SimpleAdapter.java @@ -25,6 +25,7 @@ import android.net.Uri; import java.util.ArrayList; import java.util.List; import java.util.Map; +import java.util.WeakHashMap; /** * An easy adapter to map static data to views defined in an XML file. You can specify the data @@ -57,6 +58,7 @@ public class SimpleAdapter extends BaseAdapter implements Filterable { private int mResource; private int mDropDownResource; private LayoutInflater mInflater; + private final WeakHashMap<View, View[]> mHolders = new WeakHashMap<View, View[]>(); private SimpleFilter mFilter; private ArrayList<Map<String, ?>> mUnfilteredData; @@ -128,7 +130,7 @@ public class SimpleAdapter extends BaseAdapter implements Filterable { holder[i] = v.findViewById(to[i]); } - v.setTag(holder); + mHolders.put(v, holder); } else { v = convertView; } @@ -160,7 +162,7 @@ public class SimpleAdapter extends BaseAdapter implements Filterable { } final ViewBinder binder = mViewBinder; - final View[] holder = (View[]) view.getTag(); + final View[] holder = mHolders.get(view); final String[] from = mFrom; final int[] to = mTo; final int count = to.length; diff --git a/core/java/android/widget/SimpleCursorAdapter.java b/core/java/android/widget/SimpleCursorAdapter.java index c1bcd4219c58..b6a49e5bd5f7 100644 --- a/core/java/android/widget/SimpleCursorAdapter.java +++ b/core/java/android/widget/SimpleCursorAdapter.java @@ -22,6 +22,8 @@ import android.net.Uri; import android.view.View; import android.view.ViewGroup; +import java.util.WeakHashMap; + /** * An easy adapter to map columns from a cursor to TextViews or ImageViews * defined in an XML file. You can specify which columns you want, which @@ -64,6 +66,7 @@ public class SimpleCursorAdapter extends ResourceCursorAdapter { private CursorToStringConverter mCursorToStringConverter; private ViewBinder mViewBinder; private String[] mOriginalFrom; + private final WeakHashMap<View, View[]> mHolders = new WeakHashMap<View, View[]>(); /** * Constructor. @@ -106,7 +109,7 @@ public class SimpleCursorAdapter extends ResourceCursorAdapter { for (int i = 0; i < count; i++) { holder[i] = v.findViewById(to[i]); } - v.setTag(holder); + mHolders.put(v, holder); return v; } @@ -137,7 +140,7 @@ public class SimpleCursorAdapter extends ResourceCursorAdapter { */ @Override public void bindView(View view, Context context, Cursor cursor) { - final View[] holder = (View[]) view.getTag(); + final View[] holder = mHolders.get(view); final ViewBinder binder = mViewBinder; final int count = mTo.length; final int[] from = mFrom; |