我的 Android 应用程序的首选项系统中有一个 ListPreference,以允许用户从多达 5 个不同帐户的数据价值中进行选择。在首选项中,他们需要能够在他们希望当前使用的帐户之间切换。但问题是,当我单击其中一个选项时,我会在打开列表之前获得选项。代码如下:
// Get the Account Preferences pointer
final ListPreference accountPref = (ListPreference) findPreference("accountPref");
CharSequence[] entries = { "Account 1", "Account 2", "Account 3", "Account 4", "Account 5" };
CharSequence[] entryValues = { "1", "2", "3", "4", "5" };
accountPref.setEntries(entries);
accountPref.setEntryValues(entryValues);
accountPref.setDefaultValue("1");
accountPref.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
Log.i("theApp", "Selected = " + accountPref.getValue());
return true;
}
});
因此,如果我在对话框中选择第三个条目,则日志将返回“1”。如果我然后选择第 5 个,它会返回“3”。它似乎在新选择之前返回选择。如何获取当前选择,而不是最后一个?