diff options
| -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. */ |
