Mic*_*311 1 android summary sharedpreferences
随着首选项的更改,我在更新SharedPreferences中的摘要行时遇到了一些问题.我在onResume()中有一个注册的OnSharePreferenceChangeListener,在onPause()中有一个注册的OnSharePreferenceChangeListener.
监听器正在运行,我可以使用onSharedPreferenceChanges()方法.我遇到的问题是能够在那里检索首选项,以便我可以调用setSummary().我在冰淇淋三明治中,似乎不推荐使用findPreference(key)方法.所以:
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences, String key) {
Preference pref = findPreference(key);}
Run Code Online (Sandbox Code Playgroud)
不起作用,实际上为pref返回null.从我看到的例子中,你需要优先调用它上面的setSummary()和想法?
你不应该使用onSharedPreferenceChangedListener这个.
相反,使用类似的东西.
ListPreference myPreference = (ListPreference) findPreference("preference_key");
myPreference.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (((String)newValue).equals("some_value")) {
preference.setSummary("my summary");
}
}
});
Run Code Online (Sandbox Code Playgroud)
findPreference不推荐使用,而是不应该使用PreferenceActivity(不推荐使用).如果您只需要支持Android 3.0+,那么您应该切换到PreferenceFragment新的方法.如果您需要支持Android 2.1+,那么它很好,您可以忽略警告.
| 归档时间: |
|
| 查看次数: |
5733 次 |
| 最近记录: |