android - 在 PreferenceActivity 之外使用 findPreference(key)

标签 android android-preferences

我正尝试在与 PreferenceActivity 无关的 Activity 之外使用此代码。我正在尝试这样做,以便我可以访问我的偏好值。

Preference prefNotify = findPreference(ACCUWX.Preferences.PREF_TEMPERATURE_NOTIFY);
String currentPrefValue = null;
if (prefNotify instanceof ListPreference) {
    ListPreference listPref = (ListPreference) prefNotify;
    currentPrefValue = (listPref.getEntry()).toString();
    Log.i(DEBUG_TAG, "current pref value in done is " + currentPrefValue);
}

但是我无法在我的类中访问 findPreference,因为它没有扩展 PreferenceActivity。我试图实例化一个 PreferenceManager 对象,但也无法做到这一点。

最佳答案

添加到 thinksteep 的答案,你应该从你的 Activity 中做这样的事情:

SharedPreferences prefs = PreferenceManager.getDefaultSharedPreference(this);
prefs.getString(PREF_KEY, "default");

或类似的。

关于android - 在 PreferenceActivity 之外使用 findPreference(key),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8681972/

相关文章:

android - React-Native Module HMRClient 不是注册的可调用模块(调用启用)

android - 确认对话框的偏好

android - Android中更改首选项后的调用方法

android - 从另一个 Activity 访问一个类

android - MultiAutoCompleteTextView 不显示结果

java - Android SimpleFTP 上传 FatalException

android - getChildCount() 和 getChildAt() 为 RecyclerView 返回零

java - 将 ARCore 相机输入绘制到 Unity 纹理上

android - onSharedPreferenceChanged() 从未调用过

android - 偏好 fragment 中的图标不适应夜间模式