ListPreference 的值永远不会更新
我有一个 ListPreference
,但是当我单击某个项目时,该值不会更新。 getValue()
始终返回相同的内容。
不幸的是,当我重新单击 ListPreference
时,该值没有更改。
我的代码:
ListPreference lp7 = (ListPreference) findPreference("paramUpdate");
lp7.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
ListPreference listPref = (ListPreference) preference;
listPref.getValue();
return false;
}
});
首选项 xml:
<ListPreference android:key="paramUpdate"
android:title="@string/paramUpdate"
android:summary="@string/paramSummaryUpdate"
android:entries="@array/update"
android:entryValues="@array/updateValues"
/>
值:
<string-array name="update">
<item>24h</item>
<item>48h</item>
<item>72h</item>
<item>@string/never</item>
</string-array>
<string-array name="updateValues">
<item>24</item>
<item>48</item>
<item>72</item>
<item>0</item>
</string-array>
我错在哪里?
I have a ListPreference
, but when I click on an item, the value doesn't update.
The getValue()
returns always the same thing.
When I reclick on the ListPreference
the value is unfortunately not changed.
My code :
ListPreference lp7 = (ListPreference) findPreference("paramUpdate");
lp7.setOnPreferenceChangeListener(new OnPreferenceChangeListener() {
public boolean onPreferenceChange(Preference preference, Object newValue) {
ListPreference listPref = (ListPreference) preference;
listPref.getValue();
return false;
}
});
Preferences xml:
<ListPreference android:key="paramUpdate"
android:title="@string/paramUpdate"
android:summary="@string/paramSummaryUpdate"
android:entries="@array/update"
android:entryValues="@array/updateValues"
/>
Values:
<string-array name="update">
<item>24h</item>
<item>48h</item>
<item>72h</item>
<item>@string/never</item>
</string-array>
<string-array name="updateValues">
<item>24</item>
<item>48</item>
<item>72</item>
<item>0</item>
</string-array>
Where I am wrong ?
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(2)
您必须从
onPreferenceChangeListener
返回true
,系统才能存储新值。请参阅文档以供参考。You have to return
true
from youronPreferenceChangeListener
for the system to store the new value. See the docs for reference.如果您想保存首选项值,请进行一些更正:
否则,ListPreference 有更新,但从第二次开始保存。
Some correctives, if you want to save preference value:
Otherwise, ListPreference has updates, but saves from second time.