How to get a preference value in preference fragment
11,255
In onActivityCreated (It's the time when the activity is created) of your fragment class, you do
Context hostActivity = getActivity();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(hostActivity);
That's how you access the hostActivity from the attached fragment.
Author by
sascha
Updated on June 22, 2022Comments
-
sascha about 2 years
I want to show the value of preferences in a custom preference screen. For this I need to get the values, in this case strings, within the preference fragment. In non fragments (activities) I get the values with e.g.
final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);
and get the string withString phonenumber = prefs.getString("preference_name", null);
but in the preference fragmentgetDefaultSharedPreferences
is not applicable for preference fragment.Any idea how to solve this?
Here's my code snippet:
public class PreferencesFragment extends PreferenceFragment implements OnSharedPreferenceChangeListener { TextView tvusername, tvphonenumber; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); addPreferencesFromResource(R.xml.preferences); getPreferenceScreen().getSharedPreferences() .registerOnSharedPreferenceChangeListener(this); final SharedPreferences prefs = PreferenceManager .getDefaultSharedPreferences(this); // entering preference phonenumber in text view String phonenumber = prefs.getString("phonenumber", null); ; tvphonenumber.setText(phonenumber); // entering preference username in text view String username = prefs.getString("username", null); ; tvusername.setText(username); }
-
Tomblarom about 9 yearsAwsome! Searched exactly for this! ;)