Reputation: 11608
Following the new API's I have created a pretty simple PreferenceFragment
:
public class PrefsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.preferences);
}
}
I use that in my Activity
created to enable the user to change app settings:
public class SetPreferenceActivity extends Activity {
@Override
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
getFragmentManager().beginTransaction()
.replace(android.R.id.content, new PrefsFragment()).commit();
}
}
Now I need to change the summary of a ListPreference
according to user's choice. There is no findPreference()
method defined for Activity
class, so how can I access the desired preference?
Sorry if the answer is obvious, I'm not really familiar with the new API and always used a PreferenceActivity
before it became deprecated..
Upvotes: 0
Views: 319
Reputation: 73721
Instead of doing new PrefsFragment()
right in your statement where you replace the fragment you can do this.
PreferenceFragment pFrag = new PrefsFragment();
PrefsFragment pf = (PrefsFragment)pFrag;
getFragmentManager().beginTransaction()
.replace(android.R.id.content, pFrag).commit();
then in your PreferenceFragment you create a public method that you can change what you want
pf.changeMyPreference();
Upvotes: 1