android - How to show specific properties in the settings -
in android application have setting layout 4 properties. can call settings mainactivity
, noticeactivity
. have overwritten method:
@override public boolean onoptionsitemselected(menuitem item) { switch (item.getitemid()) { case r.id.action_settings: intent intent = new intent(this, settingsactivity.class); startactivity(intent); return true; } }
to show settings have these 2 classes:
public class settingsactivity extends preferenceactivity implements sharedpreferences.onsharedpreferencechangelistener { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); getfragmentmanager().begintransaction() .replace(android.r.id.content, new settingsfragment()) .commit(); } } public class settingsfragment extends preferencefragment { @override public void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); // preference_general -> layout 4 properties addpreferencesfromresource(r.xml.preference_general); } }
what want is: if settings called mainactivity
, want show 4 properties, if called noticeactivity
want show first three.
how can without creating second layout?
you can defining constant in intent in both activity.for example:
intent intent = new intent(this, settingsactivity.class); intent.putextra("activity","first_activity"); startactivity(intent);
remember, name "activity" should same in both activities. , use checking calling specific settings in setting activity. example:
public class settingsactivity extends preferenceactivity implements sharedpreferences.onsharedpreferencechangelistener { @override protected void oncreate(bundle savedinstancestate) { super.oncreate(savedinstancestate); intent = getintent(); string checkingvalue = i.getstringextra("activity"); if(checkingvalue != null){ //or else //setting layout 4 properties }else{ //setting layout 3 properties } } }
hope help!
Comments
Post a Comment