diff options
author | Andrew Stadler <stadler@android.com> | 2010-09-02 14:50:08 -0700 |
---|---|---|
committer | Andrew Stadler <stadler@android.com> | 2010-09-02 14:50:08 -0700 |
commit | aa904f48cf3e3a31cc43806fee0e17af607c7fae (patch) | |
tree | 9d759bcc991f10f44cc7deb747dd83af22f2148d /core/java | |
parent | d63760c1e93a150910701d2d08a45b5c6899bbb6 (diff) | |
download | frameworks_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')
-rw-r--r-- | core/java/android/preference/PreferenceActivity.java | 23 |
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; } |