diff options
| author | Dianne Hackborn <hackbod@google.com> | 2010-10-28 10:32:37 -0700 |
|---|---|---|
| committer | Dianne Hackborn <hackbod@google.com> | 2010-10-28 12:29:15 -0700 |
| commit | 5164246d7e47b9c995ca1e1587f3056eb777f60b (patch) | |
| tree | 273d9124e7897c1a9b41fd4ac3eef6862a81a979 | |
| parent | 00d319e0f9bb563c025c8435bd424d66afcd5f25 (diff) | |
| download | frameworks_base-5164246d7e47b9c995ca1e1587f3056eb777f60b.zip frameworks_base-5164246d7e47b9c995ca1e1587f3056eb777f60b.tar.gz frameworks_base-5164246d7e47b9c995ca1e1587f3056eb777f60b.tar.bz2 | |
Fix setting of class loader.
Also add Bundle API to retrieve its class loader because... well,
why not.
Change-Id: Ie939f6a2ae13974e5a05eb5bd3b28f350d8a8565
| -rw-r--r-- | api/current.xml | 11 | ||||
| -rw-r--r-- | core/java/android/app/Fragment.java | 4 | ||||
| -rw-r--r-- | core/java/android/app/FragmentManager.java | 1 | ||||
| -rw-r--r-- | core/java/android/os/Bundle.java | 7 |
4 files changed, 23 insertions, 0 deletions
diff --git a/api/current.xml b/api/current.xml index 1ca51c2..ef73447 100644 --- a/api/current.xml +++ b/api/current.xml @@ -134781,6 +134781,17 @@ <parameter name="key" type="java.lang.String"> </parameter> </method> +<method name="getClassLoader" + return="java.lang.ClassLoader" + abstract="false" + native="false" + synchronized="false" + static="false" + final="false" + deprecated="not deprecated" + visibility="public" +> +</method> <method name="getDouble" return="double" abstract="false" diff --git a/core/java/android/app/Fragment.java b/core/java/android/app/Fragment.java index 3ec0912..f27a15e 100644 --- a/core/java/android/app/Fragment.java +++ b/core/java/android/app/Fragment.java @@ -84,6 +84,10 @@ final class FragmentState implements Parcelable { return mInstance; } + if (mArguments != null) { + mArguments.setClassLoader(activity.getClassLoader()); + } + mInstance = Fragment.instantiate(activity, mClassName, mArguments); if (mSavedFragmentState != null) { diff --git a/core/java/android/app/FragmentManager.java b/core/java/android/app/FragmentManager.java index d9a6171..45f9325 100644 --- a/core/java/android/app/FragmentManager.java +++ b/core/java/android/app/FragmentManager.java @@ -1200,6 +1200,7 @@ final class FragmentManagerImpl implements FragmentManager { f.mInLayout = false; f.mAdded = false; if (fs.mSavedFragmentState != null) { + fs.mSavedFragmentState.setClassLoader(mActivity.getClassLoader()); f.mSavedViewState = fs.mSavedFragmentState.getSparseParcelableArray( FragmentManagerImpl.VIEW_STATE_TAG); } diff --git a/core/java/android/os/Bundle.java b/core/java/android/os/Bundle.java index 0ec1c74..8eac7aa 100644 --- a/core/java/android/os/Bundle.java +++ b/core/java/android/os/Bundle.java @@ -181,6 +181,13 @@ public final class Bundle implements Parcelable, Cloneable { } /** + * Return the ClassLoader currently associated with this Bundle. + */ + public ClassLoader getClassLoader() { + return mClassLoader; + } + + /** * Clones the current Bundle. The internal map is cloned, but the keys and * values to which it refers are copied by reference. */ |
