如何在首选项片段中获取首选项值

sas*_*cha 5 android preferences android-fragments

我想在自定义首选项屏幕中显示首选项的值.为此,我需要在首选项片段中获取值,在本例中为字符串.在非片段(活动)中,我使用eg获取值final SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(this);并获取字符串,String phonenumber = prefs.getString("preference_name", null);但在首选项片段getDefaultSharedPreferences中不适用于首选项片段.

不知道怎么解决这个问题?

这是我的代码片段:

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);

}
Run Code Online (Sandbox Code Playgroud)

Pie*_*rew 11

在您的片段类的onActivityCreated(这是创建活动的时间)中,您可以这样做

Context hostActivity = getActivity();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(hostActivity);
Run Code Online (Sandbox Code Playgroud)

这就是您从附加片段访问hostActivity的方式.