添加一个项目到列表首选项中,使用:
void setupValues(ListPreference pref) {
CharSequence[] entries= pref.getEntries();
entries[entries.length]="l";
pref.setEntries(entries);
}
但是没实现,虽然我能创建一个新的CharSequence 设置成 EntryValue,像这样:
void setupValues(ListPreference pref) {
CharSequence[] entries= {"d","e"};
pref.setEntries(entries);
}
这样的代码是没有问题的,它能够将 "d" 和 "e" 添加到选择列表中。
但是,在你的第一个代码块中,你没有为 entries 数组分配足够的空间来存储新的元素 "l"。你可以使用数组复制函数来分配足够的空间,然后再将新的元素添加到数组中,就像这样:
void setupValues(ListPreference pref) {
CharSequence[] oldEntries = pref.getEntries();
int oldLength = oldEntries.length;
CharSequence[] newEntries = Arrays.copyOf(oldEntries, oldLength + 1);
newEntries[oldLength] = "l";
pref.setEntries(newEntries);
}
这样,你就能够在列表首选项中添加新的项目了。