Hello其他程序员,我对Preferences活动有点问题。
http://developer.android.com/reference/android/preference/PreferenceActivity.html
我只有一个首选项类别和一个listPreference:
<?xml version="1.0" encoding="utf-8"?>
<PreferenceCategory android:title="@string/basic_settings" >
<ListPreference
android:defaultValue="70"
android:entries="@array/listArray"
android:entryValues="@array/listValues"
android:key="updates_interval"
android:persistent="true"
android:summary="@string/SOME_SUMMARY"
android:title="@string/SOME_TITLE" />
</PreferenceCategory>
我需要在listPreference的摘要中写入所选的值(默认值或用户定义的值),例如: 我们将至少有70个字符。
如何从代码中执行此操作?
感谢任何帮助
答案 0 :(得分:25)
试试这样..
Preference customPref = (Preference) findPreference("updates_interval");<-- your preferences key
customPref.setSummary("desired string");
答案 1 :(得分:1)
这是一个简短的例子:
Preference etp = (Preference) findPreference("the_pref_key");
etp.setSummary("New summary");
这要求您从PreferenceActivity或PreferenceFragment显示首选项,因为findPreference()是这些类的方法。你很可能已经这样做了。
要在每次用户更改实际首选项时更改摘要,请使用OnPreferenceChangeListener并检查回调中是否更改了相关键。更改后,只需编辑上面的摘要。
答案 2 :(得分:0)
您可以创建ListPreference的子类,在其中设置OnPreferenceChangedListener,您可以从中访问新值,并在ListPreference上设置文本。我认为ListPreference上的setSummary()函数将更新首选项名称下的文本。如果这不起作用,您还可以覆盖getView()以实现您可以直接设置文本的首选项的自定义视图。