summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--api/current.xml11
-rw-r--r--core/java/android/app/Fragment.java4
-rw-r--r--core/java/android/app/FragmentManager.java1
-rw-r--r--core/java/android/os/Bundle.java7
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.
*/