Java - Android PreferenceFragment 保存和加载首选项
Java - Android PreferenceFragment save and load preferences
我创建了一个 PreferenceFragment。如何保存更改的首选项并通过应用重启加载?我的第二个问题:如何从另一个 class?
获取偏好值
我的 PrefsActivity
public class PrefsActivity extends ActionBarActivity {
public static PrefsFragment mPrefsFragment;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FragmentManager mFragmentManager = getFragmentManager();
FragmentTransaction mFragmentTransaction = mFragmentManager.beginTransaction();
mPrefsFragment = new PrefsFragment();
mFragmentTransaction.replace(android.R.id.content, mPrefsFragment);
mFragmentTransaction.commit();
}
}
还有我的 PrefsFragment
public class PrefsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
}
要阅读首选项,请在您的其他 Activity 中使用以下内容:
SharedPreferences spref = PreferenceManager.getDefaultSharedPreferences(this);
然后,要阅读首选项,请使用:
String sEmailAddr = spref.getString("email", "");
第一个参数是你想要得到的 'key',这应该在 perferences 的 XML 文件中定义(在你的例子中是 R.xml.settings
)。第二个参数是当没有这样的键时应该返回什么。
其他类型的偏好以类似的方式工作。要获取布尔值,请通过复选框设置:
boolean showEmail = spref.getBoolean("show_emails", true);
无需显式保存或加载首选项,因为这是自动完成的。
the docs. You should also initialize the default values for the preferences, as described here中有更多信息。
我创建了一个 PreferenceFragment。如何保存更改的首选项并通过应用重启加载?我的第二个问题:如何从另一个 class?
获取偏好值我的 PrefsActivity
public class PrefsActivity extends ActionBarActivity {
public static PrefsFragment mPrefsFragment;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
FragmentManager mFragmentManager = getFragmentManager();
FragmentTransaction mFragmentTransaction = mFragmentManager.beginTransaction();
mPrefsFragment = new PrefsFragment();
mFragmentTransaction.replace(android.R.id.content, mPrefsFragment);
mFragmentTransaction.commit();
}
}
还有我的 PrefsFragment
public class PrefsFragment extends PreferenceFragment {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.settings);
}
}
要阅读首选项,请在您的其他 Activity 中使用以下内容:
SharedPreferences spref = PreferenceManager.getDefaultSharedPreferences(this);
然后,要阅读首选项,请使用:
String sEmailAddr = spref.getString("email", "");
第一个参数是你想要得到的 'key',这应该在 perferences 的 XML 文件中定义(在你的例子中是 R.xml.settings
)。第二个参数是当没有这样的键时应该返回什么。
其他类型的偏好以类似的方式工作。要获取布尔值,请通过复选框设置:
boolean showEmail = spref.getBoolean("show_emails", true);
无需显式保存或加载首选项,因为这是自动完成的。
the docs. You should also initialize the default values for the preferences, as described here中有更多信息。