summaryrefslogtreecommitdiffstats
path: root/core/java/android/preference
diff options
context:
space:
mode:
authorAndrew Stadler <stadler@android.com>2010-09-02 14:50:08 -0700
committerAndrew Stadler <stadler@android.com>2010-09-02 14:50:08 -0700
commitaa904f48cf3e3a31cc43806fee0e17af607c7fae (patch)
tree9d759bcc991f10f44cc7deb747dd83af22f2148d /core/java/android/preference
parentd63760c1e93a150910701d2d08a45b5c6899bbb6 (diff)
downloadframeworks_base-aa904f48cf3e3a31cc43806fee0e17af607c7fae.zip
frameworks_base-aa904f48cf3e3a31cc43806fee0e17af607c7fae.tar.gz
frameworks_base-aa904f48cf3e3a31cc43806fee0e17af607c7fae.tar.bz2
Add startPreferenceFragment()
This allows sub-fragments to be started directly via API Change-Id: I6c8b86a911c8731068459eb9cdd3d37970fc9d0e
Diffstat (limited to 'core/java/android/preference')
-rw-r--r--core/java/android/preference/PreferenceActivity.java23
1 files changed, 19 insertions, 4 deletions
diff --git a/core/java/android/preference/PreferenceActivity.java b/core/java/android/preference/PreferenceActivity.java
index 4889c19..c28ccd3 100644
--- a/core/java/android/preference/PreferenceActivity.java
+++ b/core/java/android/preference/PreferenceActivity.java
@@ -22,6 +22,7 @@ import org.xmlpull.v1.XmlPullParser;
import org.xmlpull.v1.XmlPullParserException;
import android.app.Fragment;
+import android.app.FragmentTransaction;
import android.app.ListActivity;
import android.content.Context;
import android.content.Intent;
@@ -34,12 +35,11 @@ import android.os.Handler;
import android.os.Message;
import android.text.TextUtils;
import android.util.AttributeSet;
-import android.util.Log;
import android.util.Xml;
import android.view.LayoutInflater;
import android.view.View;
-import android.view.ViewGroup;
import android.view.View.OnClickListener;
+import android.view.ViewGroup;
import android.widget.ArrayAdapter;
import android.widget.Button;
import android.widget.FrameLayout;
@@ -730,11 +730,26 @@ public abstract class PreferenceActivity extends ListActivity implements
com.android.internal.R.id.prefs, f).commit();
}
+ /**
+ * Start a new fragment.
+ *
+ * @param fragment The fragment to start
+ * @param push If true, the current fragment will be pushed onto the back stack. If false,
+ * the current fragment will be replaced.
+ */
+ public void startPreferenceFragment(Fragment fragment, boolean push) {
+ FragmentTransaction transaction = getFragmentManager().openTransaction();
+ transaction.replace(com.android.internal.R.id.prefs, fragment);
+ if (push) {
+ transaction.addToBackStack(BACK_STACK_PREFS);
+ }
+ transaction.commit();
+ }
+
@Override
public boolean onPreferenceStartFragment(PreferenceFragment caller, Preference pref) {
Fragment f = Fragment.instantiate(this, pref.getFragment(), pref.getExtras());
- getFragmentManager().openTransaction().replace(com.android.internal.R.id.prefs, f)
- .addToBackStack(BACK_STACK_PREFS).commit();
+ startPreferenceFragment(f, true);
return true;
}