我正在学习如何在Android中使用偏好设置。我有一个小应用程序,我想在其上设置一系列首选项,其中包括RingTonePreference
。我的activity
实现OnSharedPreferenceChangeListener
并覆盖onSharedPreferenceChanged(SharedPreferences sharedPreferences,String key)
方法来处理所有不同的首选项。
直到ringtone
之前一切正常。我的问题似乎是找不到key
的{{1}}而且我的代码从未输入ringTonePreference
的{{1}}语句。
这是我的if
方法:
ringTonePreference
这是我的onSharedPreferenceChanged
public class preferenceActivity extends PreferenceActivity implements
OnSharedPreferenceChangeListener {
// code here
@Override
public void onSharedPreferenceChanged(SharedPreferences sharedPreferences,
String key) {
if (key.equals("list_subject_pref")) {
// do something
} else if (key.equals("et_subject_pref")) {
// do something
} else if (key.equals("list_times_pref")) {
// do something
// here is problem, it never enters the if statement why?
} else if (key.equals("ringtonePref")) {
RingtonePreference preference = (RingtonePreference) findPreference("ringtonePref");
preference.setSummary("ringtone selected");
}
}
}
preferences.xml
我见过this question,但我仍然无法解决问题。