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

时间:2014-08-27 16:17:15

标签: android android-fragments preferences

我想在自定义首选项屏幕中显示首选项的值。为此,我需要在首选项片段中获取值,在本例中为字符串。在非片段(活动)中,我得到的值如下: 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);

}

1 个答案:

答案 0 :(得分:10)

在你的片段类的onActivityCreated(这是创建活动的时候),你做

Context hostActivity = getActivity();
SharedPreferences prefs = PreferenceManager.getDefaultSharedPreferences(hostActivity);

这就是你从附加片段访问hostActivity的方法。

相关问题